一、简介
jmeter是一个常用的接口测试工具,有很多功能,下面简单介绍其主要的一些用法。
二、一个最简单的http请求
(1)GET请求
举例的URL均不存在,仅为了举例
URL为:http://i.cnblogs.com/test/user/user_info?user_name=小明, 请求方式:GET, 请求参数:user_name
添加线程组:右键点击【测试计划】-【添加】-【Threads(Users)】-【线程组】。
添加HTTP请求:右键单击【线程组】-【sampler】-【HTTP请求】。
添加监听器:右键单击【线程组】-【监听器】-【察看结果树】。
填写服务器,接口,请求方式,请求参数等,点击运行即可完成一个简单的接口测试。在监听器中可查看测试结果。
其中服务器为 i.cnblogs.com,请求方式为GET,接口路径为/test/user/user_info。参数名为user_name,参数值为小明。
GET请求的参数可以写到url里,及路径处填/test/user/user_info?user_name=小明,也可以写到parameters里。
(2)POST请求
图中给出了post的示例
(3)http请求默认值
有时一个线程组下包含多个接口,这些接口服务器名称是一样的,每个接口配置一遍比较麻烦,可以通过添加【http请求默认值】省去麻烦。
【线程组】-【添加】-【配置元件】-【HTTP请求默认值】
在【服务器名称或IP】处输入,则HTTP请求1,2,3,4不需要填写这一项,自动默认i.cnblogs.com。
端口号,默认参数等也可以进行配置
三、参数化
测试过程中,我们有时需要大量的数据,比如输入用户信息,需要输入用户A,用户B,...的用户信息,每次都修改请求参数,发送请求,效率很低。这时候就可以使用参数化的功能。
(1)文件参数化
将请求参数写到txt文件里,修改txt文件即可修改请求参数值。
假设用户注册接口URL为:http://i.cnblogs.com/test/user/user_reg,请求方式为POST,请求参数为username和passwd。
第一步:【线程组】-【添加】-【配置元件】-【CSV Data Set Config】
第二步:以上图为例,不同变量之间的分个符为英文的“,”,则存入参的txt文件,不同变量之间必须用英文的“,”分隔。不同用户信息需换行。格式如下所示
第三步:在HTTP请求里,将请求参数值改为${变量名}格式,如图
第四步:正常运行接口,查看结果即可。
(2)用户定义的变量
第一步:【线程组】-【添加】-【配置元件】-【用户定义的变量】,如添加host
第二步:在http请求里将服务器写成参数化格式
(3)函数助手
【选项】-【函数助手对话框】,可选择需要的功能,点击【生成】。将生成的字符串粘贴到对应的参数值处即可。
四、断言
以响应断言为例,添加【断言】-【响应断言】
选择【包括】,则响应中需要包括所填内容才算成功。
选择【匹配】,响应需完全匹配才可以。
五、关联
关联指的是:把上一个请求返回的数据,拿过来放到下个请求里面使用。
这里关联用的是JSON Path Extractor,需要安装插件。
在HTTP请求单击右键,【添加】-【后置处理器】-【jp@gc-JSON Path Extractor】。
另外,【正则表达式提取器】也可以实现关联。
例,
请求1为登录接口test/user/login,响应中包含参数sign,响应示例为:
{
"error_code": 0,
"login_info": {
"login_time": "20180314170124",
"sign": "e17428c10cbc44e111c8c6c093e2653c",
"userId": 1
}
}
请求2为添加金钱接口:test/user/money_add,请求方式POST,请求参数sign和money。
json路径:sign在login_info里,login_info外面还有一层,因此格式为$.login_info.sign
添加金钱接口将对应的参数值写成“${变量名}”即可。
六、连接数据库
jmeter可以连接数据库,【线程组】-【添加】-【配置元件】-【JDBC Connection Configuration】
添加【线程组】-【添加】-【Sampler】-【JDBC Request】,进行数据库操作。
其中Query Type对应不同的操作权限。如“Select Statement”是可以进行select操作。“Callable Statement”允许所有操作。
七、总结
本文简单介绍了jmeter的一些常用功能,jmeter是一个用法简单,功能强大的工具,在接口测试过程中经常使用。希望简单的分享能够有所帮助。