zoukankan      html  css  js  c++  java
  • 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,生成的测试报告就很直观的看到了,只是对于报错的接口,还没做错误日志的打印和记录,待后期优化脚本。

     

  • 相关阅读:
    显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
    安装cuda之后没有安装nvidia显卡驱动可能会出现ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
    ubuntu安装
    老男孩Linux查看硬盘使用个情况及其挂载点
    Anaconda使用conda activate激活环境出错CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
    Linux,ubuntu设置anaconda的环境变量
    Linux 磁盘管理
    anaconda路径改变后对其中文件的修改
    Linux 文件基本属性
    川藏游记发在别处的
  • 原文地址:https://www.cnblogs.com/liuyi1804/p/12604144.html
Copyright © 2011-2022 走看看