Jmeter使用总结
jmeter用例结构
在使用jmeter过程中经常使用的结构及各元件:
image.png
测试计划:一个功能集TestCase。
线程组:一个独立的小功能测试用例集合,或多个相关小功能的用例集合。
BeanShell Sampler:Sampler的一种,变量生成器,该变量可能被用到HTTP请求参数中。
HTTP请求:Sampler的一种,发送一个http请求,该项中包含名称,协议,ip,端口号,方法,路径,Content encoding,Parameters或Body Data。
HTTP信息头管理器:配置元件的一种,Headers的内容在这个填写
jp@gc - JSON Content Assertion:断言的一种,验证http请求的返回值是否正确。
- 只检查Json的key是否一样,不检查key的内容
- 只检查数组中数据是否包含在预期结果中
- Json结果检查时不检查内容的key:如果有key的内容不需要检查,则填写在这里,一般填写不是固定的值的key,比如创建时间,更新时间,或者服务端返回的随机id值
- 需要存在的纯文本内容:如果关注某个文本内容,可以在这里填写
- 需要不存在的纯文本内容:由于预期结果存在于返回值中就可以通过,所以返回值有多余的内容无法校验,可以在这里加上返回错误时可能出现的key值
jp@gc - JSON Path Extractor:后置处理器的一种,用来从当前http的返回结果中获取某个值,当做后续请求中的变量。
- Destination Variable Name:定义的变量名称
- JSONPath Expression:以$.开头,即获取返回body中的那个key的值
- Default Value:定义默认值,如果获取不到,则使用默认值
- HTTP Request Defaults:配置元件的一种,设置请求默认值
如何使用jmeter进行接口测试?
1.步骤
1)提测时或提测前,阅读提测接口的接口文档,了解每个接口实现的功能,了解每个接口的header、协议、ip、端口号、方法、路径、请求体及返回,了解必填参数及参数长度定义。
2)了解各接口实现的业务功能,理清楚包含的业务逻辑。
3)思考异常情况。
4)编写测试用例及调试。
2.具体实践
1)需要测试的接口有:
获取医生方案
选为我的方案
为患者分配方案
查看当前医生与指定患者关联的随访信息
查看执行进度
2)业务逻辑:
a.创建医生、创建患者、建立随访关系:
用户注册,用户登录,完善用户基本信息,用户创建患者,患者扫描登记,医生同意申请。
b.给医生分配方案,获取医生的方案,给患者分配方案,查看患者关联的随访信息,查看执行进度,移除患者方案,移除医生方案,获取医生方案。
c.数据的删除,环境的清理:
删除患者,注销用户。
3)异常:
a.重复操作。
b.请求body中的参数异常:必填参数为空,必填参数类型错误,必填参数值内容错误,参数长度超限。
3.注意点:
1.运行时失败怎么办?
1)环境检查,有些需要连接vpn
2)在View Result Tree中查看请求及返回,在请求中查看url、body、header是否有问题
a.有时是参数错误导致的,比如变量没有获取到(CSV文件及CSV文件配置问题导致没有获取到变量或者变量获取错误、使用到前面HTTP中的参数而该参数获取出错)
b.请求中相关参数填写错误
c.在返回中查看有用信息,如404一般时路径或端口有问题,400请求参数匹配问题,500一般是服务端的问题,可以自己查看报了什么错,然后找开发定位
3)环境的清理问题:
a.在一个线程组内部的最开始创建需要使用的数据,例如用户的注册及患者的添加。
b.在在一个线程组内部的最后将创建的数据例如用户及患者删除。
4)对于Pub和正式环境,很多值是不相同的,可以定义到CSV文件中,可以灵活配置和修改,在jmeter中使用${变量名}来获取。