代码改变世界

Jmeter接口测试

2024-04-18 17:06  加个小鸡腿  阅读(86)  评论(0编辑  收藏  举报

关于Jmeter做接口测试,网上很多详细的资料,可以使用一些自动化测试工具,比如Postman、Jmeter等,根据接口文档编写测试用例,并对测试结果进行验证。

可参考Jmeter接口测试、性能测试详细讲解+实战教程,堪称经典!_性能测试实战-CSDN博客 ,以下是我自己操作接口测试的简单过程,步骤都是很简单的接口,可以作为初入门学习使用。

使用Jmeter可以做接口测试,也可以做性能测试,这里介绍使用jmeter做接口测试,我使用python的flask框架写了一个简单的图书管理系统,在本地启动服务后,接口就可以使用了,接口包含常见的增删改查接口,api接入路由如下:

@app.route('/books',methods=['GET'])   #获取所有图书
@app.route('/books',methods=['POST'])  #添加一本图书
@app.route('/books/<int:book_id>',methods=['GET'])  #根据id获取图书
@app.route('/books/<int:book_id>',methods=['PUT'])  #更新图书信息
@app.route('/books/<int:book_id>',methods=['DELETE'])  #删除图书

【flask源码可参考我的另一篇博客:flask框架图书管理系统服务器端 - 加个小鸡腿 - 博客园 (cnblogs.com)

windows本地命令行执行python命令行后得到了服务器的地址如下 http://127.0.0.1:5000:

 在浏览器打开 http://127.0.0.1:5000/books查看下,返回了已有的图书数据,说明接口可以正常工作:

 (备注:原始数据可以参考上面给的源码链接的初始化值,目前还是写入本地数组中,后续章节会尝尝试管理到数据库)

 接下来,我们就使用jmeter来做这个图书管理系统的api接口测试,这里涉及到一个小小的知识点:如何判断jmeter接口是json还是表单呢,请参考:Jmeter如何判断请求的数据是Json还是表单格式 - 加个小鸡腿 - 博客园 (cnblogs.com)

1.打开jemter

windows下直接双击"D:\apache-jmeter-5.1.1\bin\jmeter.bat"文件就可以打开,我喜欢设置个中文界面,简单直观,嘻嘻,点击左上角菜单栏Options-Choose Language-Chinese

2.构建测试计划

(1)新建一个测试计划(Test Plan)。

(2)添加“线程组”(Thread Group),用来模拟并发用户请求。   步骤:选中测试计划右键-添加-线程组

(3)添加“HTTP 请求”(HTTP Request),在其中指定接口URL、方法(GET、POST等)、添加请求头(Headers)、请求体数据(Body Data)等,步骤:添加-取样器-HTTP请

 3.详细介绍增删改查列举接口的请求

(1)列出所有图书信息

添加http请求+响应断言,默认200,返回值不清楚的话,可以用curl命令请求服务器执行下。

 (2)增加图书

增加http请求头来传json数据+api接口使用json传数据+断言,其中json数据不需要换行,否则会报错,由于服务端的id是自己自增处理的,所以我们json传参是不需要传id。

 

 

 (3)获取图书

 

 (4)更新图书

更新图书可能成功,可能不成功,所以断言需要包含成功返回和失败返回的状态码,注意这里更新的json中如果不写id的话,就没有这个字段了,更新是全部替换掉,所以记得加id字段。

 

 

 

(5)删除图书

断言需要增加失败和成功的判断码

 

 

 

4.执行接口测试

两个扫帚是清理上次生成的全部结果数据的,一个扫帚是单个接口的,绿色三角形是执行,添加查看结果树插件可以查看用例执行的结果

 查看结果树发现,用例并没有按照我添加的顺序(例总数据-增加-查询-更新-删除)来执行,

 如何设置按照增加的用例顺序进行测试呢?是因为这些线程都是并发执行的,如果要按照一定的顺序,需要勾选测试计划中的“独立运行每个线程组”:

 现在按照顺序执行了

 5.测试结果

添加察看结果树和聚合报告可以看到本次接口执行的情况

 

以上,就是一个简单的jmeter结果测试流程,后续会新增其他章节对部分细节进行优化和解读。