此文章作为工作中用到的jmeter接口测试相关内容简述,方便日后查阅参考,如有理解描述有误之处,欢迎指出。

首先Jmeter环境准备网上有很多教程,在此不多做赘述;

1.接口简述

接口可理解为从客户端到服务器的通道,客户端发送请求到服务器是通过接口实现的;

2.抓包

在无接口文档或文档描述清晰度不够,验证请求入参及相应信息时,web端可直接在浏览器使用F12查看network信息;需勾选Presever log选项;抓取页面所有的HTTP、HTTPS的请求;pc客户端或app可借助Charles、fiddle等相关抓包工具获取相应信息;

3.接口测试实例

以登录为例,输入用户名、密码,完成登录,跳转首页

测试过程中有些数据经常发生变化,如登录后需要验证状态sessionID或token,测试时就需通过关联(第二个请求需要的参数需要从第一个请求返回数据中获取)继续后续测试,不同用户或不同时间相应值也不同,也涉及

1⃣️jmeter测试计划中(以汉化版讲解)创建线程组 PS:线程组中可以创建多个请求

2⃣️线程组右键->添加->Sampler->HTTP请求(登录页) 。配置相应登录页面信息,域名或IP、端口号、协议(HTTP、HTTPS)、方法(get、post等)、路径,添加参数名及相应值(账号、密码)

PS:配置密码参数时,需按照实际项目需要,数值配置明文或秘文  如MD5加密或加盐形式,咨询相应研发人员即可

3⃣️线程组右键->添加->监听器->查看结果树(常用)

4⃣️再从线程组右键->添加->Sampler->HTTP请求(首页)。配置相应页面信息。添加参数名及相应值(sessionID或token)

此时jmeter运行就可正常验证相应接口情况

sessionID或token发生变化,或参数化执行接口自动化时,使用关联方法

5⃣️正则表达式:登录(http请求)右键->添加->后置处理器->正则表达式提取器 PS:引用名称填写SID或简明可理解的(自定义),正则表达式方式:sid=(.+?);path,模版:$1$,$2$(根据实际情况取几个),匹配数字一般填写1  PS:“要检查的相应字段”默认为主题,需改选信息头

6⃣️首页引用正则表达式:参数值 ${sid}

7⃣️添加断言,验证是否正确跳转首页。首页右键->添加->断言响应断言   可直接验证相应字符信息,如跳转页面相应的汉字“我的”等

测试多条数据登录请求或并发压测时,用参数化

8⃣️再从线程组右键->添加->配置元件->CSV Data(常用)   PS:从文件自动提取登录信息,电脑创建TXT或CSV格式文件,导入或编写相应测试信息

Filename:本地文件路径

File encoding(编码):UTF-8

Variable(变量):变量名 如name,pwd

9⃣️登录(http请求)参数值引用变量${name,pwd}

不出意外的话,就可正常进行接口测试了…

 

 

复习补充:摘自网络

接口测试

一般分五个步骤:(1)添加线程组 (2)添加http请求 (3)在http请求中写入接入url、路径、请求方式和参数 (4)添加查看结果树 (5)调用接口、查看返回值

注:要查看自己的接口是什么类型的请求,上述为get请求

添加聚合报告就可以查看测试的信息

post请求

注:post请求要加上参数值

jmeter 操作数据库 

操作数据库基本有四个步骤:(1)导入mysql的jdbc的jar包 (2)创建数据库的连接配置,线程组里添加配置元件-JDBC Connection Configuration (3)线程组里添加jdbc request,写sql语句 (4)添加察看结果树,点击启动按钮,就能看到执行的SQL。具体的实例如下截图所示:

 

 

 

简单压测:摘自网络,复习留存~

什么是压力测试 

顾名思义:压力测试,就是  被测试的系统,在一定的访问压力下,看程序运行是否稳定/服务器运行是否稳定(资源占用情况)

比如: 2000个用户同时到一个购物网站购物,这些用户打开页面的速度是否会变慢,或者网站是否会奔溃

做压力测试的常用工具

做压力测试,一般要使用工具, 人工是没办法做的。   最常用的工具是LoadRunner, 但是LoadRunner毕竟是收费软件,而且使用上也比较复杂。 现在越来越多的人开始使用Jmeter来做压力测试。 免费, 而且使用上非常简单。

 

做压力测试的步骤如下:

1. 写脚本 或者录制脚本

2. 使用用户自定义参数

3. 场景设计

4. 使用控制器,来控制 模拟多少用户。

5. 使用监听器, 查看测试结果

 

本文做压力测试的例子

本文举的实例是: 在一台电脑用Jmeter模拟200个用户,同时去使用bing搜索不同的关键字, 查看页面返回的时间是否在正常范围内。

 

第一步: 使用CSV Data Set Config 来参数化

首先我们把测试需要用到的2个参数放在txt文件中,

新建一个data.txt文件,输入些数据, 一行有两个数据,用逗号分隔。

 

启动Jmeter, 先添加一个Thread Group, 然后添加一个CSV Data Set Config (Add -> Config Element -> CSV Data Set Config)

 

第二步:添加HTTP Request.

我们添加http 请求,发送get 到 http://cn.bing.com/search?q=博客园+小坦克

选择Thread Group 右键 (Add ->Sampler -> HTTP Request),  需要填的数据如下:

 

第三步: 使用Thread Group, 控制模拟多少用户

选中Thread Group

Number of Threads(users):     一个用户占一个线程,  200个线程就是模拟200个用户

Ramp-Up Period(in seconds):   设置线程需要多长时间全部启动。如果线程数为200 ,准备时长为10 ,那么需要1秒钟启动20个线程。也就是每秒钟启动20个线程。

Loop Count: 每个线程发送请求的次数。如果线程数为200 ,循环次数为10 ,那么每个线程发送10次请求。总请求数为200*10=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。

 

第四步:  添加Summary Report 用来查看测试结果

选中Thread Group 右键(Add -> Listener -> Summary Report)

 

第五步: 运行一下

到目前为止, 脚本就全写好了, 我们来运行下, 如何看下测试的结果

 

 

 

使用jmeter测试高并发(与上方存在部分重复):

1、创建线程组

2、设置线程参数

3、网路请求也可添加cookie管理器  网站有登录限制的需要用到记录用户信息(非必须)

4、添加HTTP请求,为录制http连接使用

5、可以添加添加HTTP代理服务器   (添加代理需要在浏览器中设置代理)

6、选择需要得到测试的报告样式

7、开始执行查看样式

8、停止查看返回的数据和请求是否正常

用表格样式查看

9、执行错误

 

版权声明:本文为dczs原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dczs/p/8399495.html