jmeter之接口功能自动化
一、接口测试简述
接口:用来连接前端,后端还有移动端的程序模块。由于不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。
接口分类:POST,GET,PUT,DELETE。
POST请求的数据是放在WebForm里面的,以表单的形式提交;GET请求的数据是拼接在URL中的,以URL的形式提交数据。
不同接口类型的差异:
1.参数提交的方式;
2.请求数据的大小;
3.安全性。
接口测试主要测试要点:
1、检查请求是否成功,默认请求成功时状态码是200
2、检查返回数据的正确性(即返回的数据是否与预期结果一致)与格式
3、检查接口的容错性,即传递数据的类型错误时是否可以处理
4、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理
5、接口的性能,接口处理数据的时间也是测试的一个方法。这直接影响用户的使用体验
6、接口的安全性
二、jmeter工具栏及常用组件介绍
1、Jmeter常用组件介绍——HTTP请求(GET)
线程组->添加->Sampler->HTTP请求
2、Jmeter常用组件介绍——HTTP请求(POST)
线程组->添加->Sampler->HTTP请求
3、Jmeter常用组件介绍——响应断言
HTTP请求->添加->断言->响应断言
4、Jmeter常用组件介绍——HTTP请求默认值
线程组->添加->配置元件->JDBC Connection Configuration
5、Jmeter常用组件介绍——HTTP信息头管理器
线程组->添加->配置元件->HTTP信息头管理器
6、Jmeter常用组件介绍——用户定义的变量
线程组->添加->监听器->查看结果树
7、Jmeter常用组件介绍——聚合报告
线程组->添加->监听器->聚合报告
8、Jmeter常用组件介绍——JDBC Connection Configuration
线程组->添加->配置元件->JDBC Connection Configuration
9、Jmeter常用组件介绍——JDBC Request
线程组->添加->配置元件->JDBC Request
10、Jmeter常用组件介绍——正则表达式提取器
线程组->添加->后置处理器->正则表达式提取器
三、接口测试过程
4、问题
一、如何引用变量?
1、定义变量 给需要被引用的参数值定义一个变量名,变量名是唯一的。 2、引用变量 在需要使用参数值的地方引用变量名,引用格式为: ${变量名} PS:引用变量名用到的符号均为英文字符。
二、当接口有依赖关系,即某个接口的输入参数是另一个接口的请求结果时,应该如何进行参数传递?
1、当依赖接口所需入参出现在被依赖接口的返回结果中时,
在被依赖接口的【 HTTP请求】下添加【正则表达式提取器】,使用(.+?)将所需数据从返回结果中提取出来
2、当依赖接口所需入参没有在被依赖接口的返回结果中出现时
在被依赖接口的HTTP请求后面添加【 JDBC Connection Configuration 】和【 JDBC Request】,从数据库中查询需要的数据,并在【 JDBC Request】下添加【正则表达式提取器】使用(.+?)将所需参数从查询结果中提取出来
步骤流程:请求‘注册短信验证码’接口
短信验证码验证’接口依赖‘注册短信验证码’接口
1、请求发送验证码接口
2、添加JDBC Connection Configuration连接数据库
3、添加JDBC Request查询‘注册短信验证码’接口产生的数据
4、查看数据库查询结果
5、提取验证码
6、引用验证码名称,请求‘短信验证码验证’接口
三、为什么要连接数据库进行数据查询?
当接口之间有依赖关系,但是被依赖接口的返回结果中并没有直接返回依赖接口所需的数据时,便需要从数据库中查询出需要的测试数据。 例如: ‘短信验证码验证’需要获取‘注册短信验证码’生成的验证码,但‘注册短信验证码’的返回结果为: {“StatusCode”:200,“DataCount”:0,“Data”:1,“Error”:null},并没有直接返回验证码,因此需要连接数据库查询接口生成的验证短信,并用正则表达式提取出验证码,同时定义一个引用名称,便于‘短信验证码验证’引用。
四、当多个接口可以串成一个完整业务流程时如何处理?
前提:熟悉业务逻辑和接口所实现的功能
最好实行新增操作,然后进行一系列的操作后再删除
例如:
1.新增标签
2.新增/删除指定标签下的医生/药店/商品,同时更改标签名称
3.获取指定标签下的医生/药店/商品详情
4.删除指定标签下的医生/药店/商品
5.删除标签
以上5个接口可以按照顺序串成一个完整业务流程,在Jmeter中需要按照业务逻辑顺序来安排接口先后位置。
具体实现如下:
1.请求‘新增标签’;
2.从数据库中查询新增的标签ID,引用标签ID,请求‘新增/删除指定标签下的医生/药店/商品,同时更改标签名称’;
3.引用标签ID,请求‘获取指定标签下的医生/药店/商品详情’;
4.引用标签ID,请求‘删除指定标签下的医生/药店/商品’;
5.引用标签ID,请求‘删除标签’。
如此可以保证测试数据的一致性,且不会产生过多垃圾数据。
五、如果生成的csv测试报告文件显示乱码怎么办?
1.用txt方式打开csv文件
2.文件另存为UTF-8编码格式,替换原来的csv文件
3.打开csv文件优化测试报告
4.另存为.xlsx格式
PS:最后一步一定要另存为普通excel格式,否则数据位置会错乱。