用Jmeter进行接口测试

用Jmeter进行接口测试以获取学生信息接口 stu info 为例 添加一个 用户定义的变量 设置变量 host 以及值 这样在获取学生信息接口 stu info 就可以通过 host 取得 服务器名称或 IP

大家好,欢迎来到IT知识分享网。

用Jmeter进行接口测试

web接口测试工具:

     手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开源)、soupUI(开源&商业版)。

     

用Jmeter进行接口测试

          

下面将对前一篇Postman做接口测试中的接口用Jmeter来实现。

一、Jmeter 的使用步骤

打开Jmeter 安装包,进入\bin 中,找到”jmeter.bat”, 点击打开即可。

在下图打开的Jmeter 页面中,右键“测试计划” -> “添加” -> “Threads(Users)” -> “线程组”, 建立线程组。

用Jmeter进行接口测试

右键“线程组” -> “添加” -> “Sample” -> “HTTP请求”, 输入“服务器名称或IP”,对应的端口号,http默认端口号80,可以不写。

以下请求为GET, 所有“方法”那选择“GET”, 输入对应的路径,添加参数及值。

用Jmeter进行接口测试

注意: “服务器名称或IP”中不用输入http://, 请求时会自动加入(eg, 输入api.test.cn).

用Jmeter进行接口测试

右键“线程组” -> “添加” -> “监听器” -> “察看结果数”, 添加“察看结果数”, 以察看运行后的结果,如果所示。

用Jmeter进行接口测试

这是一个简单的接口请求例子。

二、接口请求实例

1. “用户定义的变量” 的应用

以获取学生信息接口(stu_info) 为例,添加一个“用户定义的变量”,设置变量”host” 以及值,这样在获取学生信息接口(stu_info)就可以通过”${host}”取得“服务器名称或IP”的值。

用Jmeter进行接口测试

用Jmeter进行接口测试

登陆接口(login)接口也可以应用“用户定义的变量”的方法,如上图所示,在“用户定义的变量”中添加”username”, “password” 变量及对应的值, 应用到登陆接口(login)接口请求中即可。

用Jmeter进行接口测试

 2. “HTTP Cookie 管理器”的应用

以金币充值接口(gold_add)为例,建立一个HTTP请求改名“金币充值”,选取请求方式POST, 输入对应的host, path以及同请求一起发送的参数和值。

用Jmeter进行接口测试

由于此接口有权限验证,需要admin用户才可以做操作,需要添加cookie, 因此需要添加”HTTP Cookie 管理器”以传递Cookie。

添加”HTTP Cookie 管理器” 方法如下图所示, 右键“金币充值” -> “添加” -> “配置元件” -> “HTTP Cookie 管理器” 

用Jmeter进行接口测试

设置Cookie 的名称(即username 的值),值(即login Response 中的sign 值),域(已在“用户定义的变量”中设置,只需输入变量即可,格式为${host})

用Jmeter进行接口测试

最后可以通过“察看结果数”的响应数据查看结果。

3. 建立接口间的关联

以下以登陆接口(login)和金币充值接口(gold_add)为例,在这两个接口间建立关联,让金币充值接口(gold_add)可以实时取得登陆接口(login)的”sign” 值,不必再“HTTP Cookie 管理器”中手动输入最新的sign 值。

从“察看结果树”可以看出,登陆接口(login)的Response 结构为Json格式, sign 在 login_info 里面一层。

用Jmeter进行接口测试

3.1 应用”jp@gc – JSON Path Extractor” 来实现

右键“登陆” -> “后置处理器 -> “jp@gc – JSON Path Extractor” 

用Jmeter进行接口测试

通过“察看结果数”得到Response 的结果后, 将“JSONPath Expression” 输入“$.login_info.sign”, 设置变量“sign2”, 给金币充值接口(gold_add)用

用Jmeter进行接口测试

因此需要在“HTTP Cookie 管理器”中将${username}的值输入${sign2},代替之前手动输入的那一串码。

用Jmeter进行接口测试

3.2 右键“登陆” -> “后置处理器 -> “正则表达式提取器” 

用Jmeter进行接口测试

输入对应的值, “jp@gc – JSON Path Extractor” 中类似,将“引用名称”输入”sign2″,以保证和“HTTP Cookie 管理器”的一致。将正则表达式中的式用login 接口返回的 “sign”: “cd2b43f1688e472e3a516b5a2c6831e8”,  中的一串码用(.*) 替换即可。

用Jmeter进行接口测试

各参数的含义参考下表:

参数

释义

引用名称

在HTTP等请求中,引用此数据,需要用到的名称

正则表达式

用于将需要的数据提取出来

模板

匹配数字(0代表随机)

0 代表随机取值,1 代表全部取值

缺省值

如果正则表达式没有搜找到值,则使用此缺省值

4. 设置断言

以“增加学生”接口(add_stu)为例,增加响应断言,以验证添加的数据是否成功。如下图所示设置

用Jmeter进行接口测试

通过“察看结果数”可以看到“增加学生” 金币结果为绿色,同时响应数据里的确有断言中的设置的”1000″。

 

用Jmeter进行接口测试

 5. “HTTP信息头管理器”的使用

以下图中的“获取所有学生信息” 为例,右键“获取所有学生信息” -> “添加” -> “配置元件” -> “HTTP Cookie 管理器” , 输入对应的名称和值即可。

注意:  这里的值需要输入完整的url, 包括http:// (eg, 输入http://api.test.cn)

用Jmeter进行接口测试

6. POST 文件的使用方法

与其他POST请求中添加key-value, json 数据不同的是,这个需要在HTTP 请求中点击“Flies Upload” tab, 点击“添加”, 然后通过“浏览”上传本地的文件。

注意: 参数名称必须为”file”。

用Jmeter进行接口测试

7. “CSV Data Set Config” 和 “函数助手对话框”的使用

以增加学生接口(add_stu)为例,在本地创建一个文件,添加name 和sex的值,对脚本设置5个线程或者循环5次,以加入这5个用户。 

用Jmeter进行接口测试

右键“线程组” -> “添加” -> “配置元件” -> “CSV Data Set Config”,如果仅应用于“增加学生”接口的话,可以直接在“增加学生”接口下面创建”CSV Data Set Config”。

用Jmeter进行接口测试

根据下图添加对应的,”Variable Names” 输入”name” 和”sex”, 以逗号隔开,为避免插入的数据乱码,将file encoding 设置为utf-8。

用Jmeter进行接口测试

由于”CSV Data Set Config”中的变量名为name 和sex,因此在“增加学生”接口的”Body Data” 中将值分别替换为${name}, ${sex}。

用Jmeter进行接口测试

由于“phone”的唯一性,每次插入一条学生信息时phone 都要求不一样,所以对后面8位用随机函数来实现。

用Jmeter进行接口测试

8. 数据库的应用

以下是JMeter 驱动数据库列表:

数据库

驱动

数据库url

mysql

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}?allowMultiQueries=true

oracle

org.postgresql.Driver

jdbc:postgresql:{dbname}

PostgreSQL

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:user/pass@//host:port/service

MSSQL

com.microsoft.sqlserver.jdbc.SQLServerDriver

或者

net.sourceforge.jtds.jdbc.Driver

jdbc:sqlserver://IP:1433;databaseName=DBname

或者

jdbc:jtds:sqlserver://localhost:1433/”+”library”

以下以mysql 数据库为例。

添加一个”JDBC Connection Configuration”, 根据上表中对mysql的要求设置下图的值。 

用Jmeter进行接口测试

添加一个”JDBC Request”, 由于在Query 中有insert 和select, 所以Query Type 需要选择“Callable Statement”, 如果是单个的select 或者insert,可以选取对应的Select Statement 和Update Statement。

用Jmeter进行接口测试

通过察看结果数看到”JDBC Request” 请求成功,响应数据里返回insert 和select 的结果。

用Jmeter进行接口测试

登陆mysql 数据库,查询发现和Jmeter 中通过察看结果数看到的结果一致。

用Jmeter进行接口测试

 注意点:修改Jmeter 中的中文乱码要将”\bin” 路径下的”jmeter.properties” 文件中设置为 “sampleresult.default.encoding=utf-8″,如下所示。

用Jmeter进行接口测试

对于Jmeter 里中文显示不出来的问题,可以打开”\bin” 路径下的”jmeter.properties” 文件,如下图所示,将这几个JS开头的注释去掉。

用Jmeter进行接口测试

对于以上两个问题,修改后,需将Jmeter 重启才能起效。

  总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

用Jmeter进行接口测试​​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

用Jmeter进行接口测试

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/114113.html

(0)
上一篇 2025-12-10 19:45
下一篇 2025-12-10 20:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信