接口测试jmeter实战2
1、风暴平台地址管理
1.1构建完整流程
根据测试场景添加简单控制器(添加地址、修改地址、删除地址)。
1.2添加地址
1) 打开添加的产品(柒夜),查看到产品信息,点击环境管理新增地址,新建一个环境信息,通过浏览器抓取接口数据;
(2)添加HTTP请求, 填写请求方法、请求地址、请求参数。
(3)添加JSON提取器,定义变量host ID获取环境id。
(4)添加HTTP请求,命名为地址详情页,填写请求方法和请求地址。
(5)添加断言验证产品添加成功。
1.3修改地址
(1)添加HTTP请求,填写请求方法、请求地址、请求参数,当请求参数中有中文时,需要在内容编码中填写UTF-8。同理添加修改环境地址、修改环境描述的请求。
(2)添加断言验证修改成功。
1.4删除地址
(1)添加HTTP请求,填写请求方法和请求地址。
(2)新建一个HTTP请求,确认环境已经被删除。输入地址名称,进行搜索通过network抓取数据。
(3)添加断言验证环境已删除,此时进行模糊断言即可,因此用响应断言进行断言。
2、测试报告
2.1前期准备
2.1.1认识ant
ant翻译过来是蚂蚁的意思,是优秀的Java构建⼯具。Apache Ant是⼀个Java库和命令⾏⼯具,其任务是驱动构建⽂件中描述为相互依赖的⽬标和扩展点的进程。Ant 的主要已知⽤途是构建 Java
应⽤程序。Ant 提供了许多内置任务,允许编译、组装、测试和运⾏ Java 应⽤程序。Ant 还可以有效地⽤于构建⾮ Java 应⽤程序,例如 C 或 C++ 应 ⽤程序。更⼀般地说,Ant可⽤于试验任何类
型的过程,这些过程可以⽤⽬标和任务来描述。再简单点,就是 jmeter整合ant可以⽣成HTML的测试报告。
2.1.2ant的安装
(1)下载地址:https://ant.apache.org/bindownload.cgi,在上述地址将ant下载到相关文件夹;
(2)下载完成后解压。
2.1.3ant环境的搭建
(1)进入到解压的ant下的bin目录中,复制路径;
(2)右键点击此电脑进入属性下的高级系统设置,点击环境变量,进入环境变量。
(3)找到系统变量的path项,点击编辑;
(4)点击新建,将复制的路径粘贴上去,点击确定环境就构建完成了。
2.1.4build.xml文件的构建
(1)下载build.xml文件,将其放在jmeter的tests(如果没有就创建一个,用来存放测试中的所有资料)文件夹中,再在tests文件夹中再创建一个report(保存测试报告的地方)和scritp(保存测试文件即脚本的地方)文件夹;
(2) 进入report文件夹中,创建html和jtl文件夹;
(3)将jmeter保存的测试文件复制到script文件夹中;
2.1.5发送邮件的插件
自动发送邮件需要用到三个插件,activation.jar、commons-email-1.2.jar、mail.jar,下载这三个插件后将其放到ant的lib目录下;
2.1.6修改jmeter的配置文件
(1)打开jmeter的bin目录下的jmeter.properties文件(记事本方式打开),CTRL+F搜索jmeter.save.saveservice.output_format=csv,取消注释(即前面的#),并将其修改为jmeter.save.saveservice.output_format=xml;
(2)在apache-jmeter的extras下找到ant-jmeter-1.1.1.jar,把它复制到ant的apache-ant-1.10.0\lib下。
2.1.7修改build.xml的配置文件
(1)找到jmeter文件夹,复制路径,然后打开到ests文件夹中的build.xml文件,修改"jmeterPath" value的值,将其修改为复制的路径,然后保存;
(2)进入到script文件夹中,复制脚本的名称,将build.xml文件中要执行的测试脚本修改为复制的脚本名称,然后保存;
(3)修改"mail_to" value的值,将其修改为自己的邮箱;
2.2测试报告生成步骤
(1)进入到tests文件夹,复制路径,打开控制台,进入到tests目录下;
(2)输入ant,即可输出测试报告,出现build success表示生成成功。
(3) 在生成成功后就可以看到在JMeter文件夹内的test下的report的html文件夹内看到生成的测试报告 ,如下图所示
3、jmeter组件介绍
3.1用户自定义变量
1) 用户自定义变量组件其实用到的也是数据驱动的思想,即把公共的分离出来,定义成变量,在后面直接调用,添加方式如下;
2) 定义变量,如登录账户,后面登陆时可以直接调用变量;
3.2用户参数
用户参数组件其实运用的原理就是参数化的思想,那么什么是参数化呢?参数化可以简单的理解为:我们一个测试点,需要多次操作,每次操作的数据不同但测试步骤一致,即相同的测试步骤,
每次输入的值不一样,这样的场景我们通过参数化来解决。
(1)用户参数添加方式如下;
(2)通过操作线程组中的线程数,线程数为几就表示该测试用例执行几次;
(3)用户参数添加,如登录不同用户,需要先点击添加变量,再点击添加用户,添加几个用户,线程数就修改为几。
3.3延时等待
1) api的测试用例执行速度是非常快的,基本在毫秒级别,但某些时间,由于业务的特殊性需要延迟几秒执行,这个时候就需要延时等待,JMeter中延时等待意为每执行一个测试用例都会固定等待多少ms;
2) 设置等待时间,如等待300ms;
3.4正则表达式提取器
(1)正则表达式提取器是用来处理动态参数的,处理动态的参数有两种处理方式分别为json提取器和正则表达式提取器,在处理正则表达式提取时,可以将响应数据放到网站
(https://tool.oschina.net/regex),该网站可以很清楚的看到响应数据的层级关系,验证正则表达式取到的值是否正确。正则表达式提取器的添加方式如下;
其中,"token"表示要提取到token的值;.*代表的是全部值 ;?代表的是在响应数据里面匹配到第一个token即停止。
(2)jmeter正则表达式提取器用法
其中引用名称:即为我们定义的变量;正则表达式:里面需要写入的是正则表达式;模板:用$$引用,$1$表示匹配到第一个值;匹配数字:0代表随机取值。
3.5CSV数据文件设置(CSV Data Set Config)
csv数据文件设置运用的也是参数化的思想,与用户参数不同的是CSV数据文件是通过导入CSV文件剥离参数,CSV Data Set Config添加方式如下:
(1)创建文件储存参数,这里的文件格式可以是txt和csv格式;
(3)csv数据文件的使用
需要注意,这里有几组参数,就需要将线程组的线程数设为几。