jmeter接口测试

一、简介

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是一个用法简单,功能强大的工具,在接口测试过程中经常使用。希望简单的分享能够有所帮助。

原文地址:https://www.cnblogs.com/zhxwind/p/8565267.html