• jmeter中脚本数据分离并生成报告


    目的

    测试项目的接口通过csv文件整理后,通过jmeter配置调用该文件已实现接口自动化并生成对应HTML报告。该方法能够快速的做接口回归,便捷的脚本维护(只需修改csv文件对应信息即可),能高效的实现非代码的接口自动化。

    思路梳理

    1.创建全局ip及端口,所有接口URL拼接时前半段自动添加。

    2.添加全局信息头(head),接口请求时带入该head。

    3.创建登录请求并获取token以便后面接口全局调用。

    4.新增线程除添加csv配置后,在csv中做好字段分类,然后供调用。

    5.添加if控制器针对接口类型做分类

    6.执行对应非GUI命令后生成报告

    实现步骤

    1、首先创建公共的请求地址。

    2、创建HTTP信息头管理器,填写公共的且必须的head信息。可以在登录时查看到,逐步填写完整。

     

     3、创建setUp(登录)线程组,保持默认值即可,因为再执行接口自动化或者性能测试时,登录只需要一次即可。所以这里线程数及循环次数都为1

     

     4、在setUp下新建HTTP登录请求,并添加正则提取器提取登录后的token。这里的传参用了【消息体数据】,在填写时注意搞清楚接口报文的传输格式时data还是json串。

     在请求下添加响应断言判断登录是否成功。添加正则提取器,获取token值,并添加后置处理器Debug PostProcessor以便观察提取内容是否正确。

    正则提取器:

    正则表达式为"token":"(.+?)",表示获取字段为token的全部内容

    后置处理器Debug PostProcessor

    默认即可,用于察看提取内容

    察看结果树:

    可以看到提取的token内容

    5、在请求的中添加BeanShell取样器来配置token作为全局变量使用。

    ${__setProperty(newtoken,${token})}

    6、重新创建一个线程组,并添加信息头管理器填写请求中所需的键值对,token${__property(newtoken)}(上个线程组添加的全局变量)

     7、接着并行添加循环控制器来控制csv调用的次数,这里选择循环次数为“永远”,配合设置CSV文件设置,可根据文件行数来添加请求数。

     8、在该控制器下添加配置原件“CSV数据文件设置”,先创建csv文件按整理的接口创建对应字段并添加必填参数及断言内容。

     在配置原件中填写与文件字段对应的信息。其中变量名用西文逗号隔开,其他的选项按需要填写即可。

     

     9、在循环控制器下添加一个if控制器,按条件来执行csv文件中的数据。这里条件的语法格式注意"${priority}" == "H"

     

     10、if控制器下按接口类型再次分别添加if控制器,这里按GETPOST做了两类,添加两个控制器即可,同样的条件语句写法。

     

     配置GET请求参数,名称按自己的习惯参数化拼接名字,请求路径同样按参数化拼接即可。

    因为GET请求是在URL后面拼接的param,所以这里是直接在路径中吧urlparameter引用拼接了。

     

     配置POST请求参数同理,只是在url和参数上有所不同。

    断言可添加一个或多个,可根据接口的报文来制定断言内容,这里断言字段有两个。

     

    **POST的接口只能读取parameter中的一个字段内容,还无法读取json串,还需优化。(有解决方案的欢迎指点!)

    至此jemter的数据准备工作已经完成,接口也按接口文档调试成功。报告当前用的是jmeter自带的报告生成模板Dashboard

    在非GUI模式下,首先进入数据存放的目录。

    执行jmeter -n -t **(脚本).jmx -l . eports esult.jtl生成jtl文件,删除reports目录下文件后再执行jmeter  -g . eports esult.jtl -o . eports esult.html,生成的测试报告就很直观的看到了,只是对于报错的接口,还没做错误日志的打印和记录,待后期优化脚本。

     

  • 相关阅读:
    c3p0使用
    连接池介绍
    内存角度探寻C++面向对象 之 继承、多态
    java多线程总结
    SQL关联查询总结
    java内存管理总结
    自制操作系统 (六) 分割编译与中断处理
    C++内联函数
    C++函数指针
    springmvc下实现登录验证码功能
  • 原文地址:https://www.cnblogs.com/liuyi1804/p/12604144.html
Copyright © 2020-2023  润新知