学习总结—JMeter实现web接口测试实践举例


测试项目:

本地搭建的jforum项目

测试内容:

登录:通过账号密码登录,并验证是否登录成功;

进入板块:实现动态获取板块信息,验证是否能正确进入板块;

发帖:实现不同板块随机发帖,验证是否发帖成功;

 

一、登录验证

第一步,打开JMeter

学习总结—JMeter实现web接口测试实践举例_第1张图片

图1

新建一个线程组,命名为登录发帖

学习总结—JMeter实现web接口测试实践举例_第2张图片

图2

新建一个HTTP请求,维护参数URL及请求参数等信息。

学习总结—JMeter实现web接口测试实践举例_第3张图片

图3

学习总结—JMeter实现web接口测试实践举例_第4张图片

图4

当我们需要维护HTTP请求头的一些信息的时候,我们需要新建一个HTTP信息头管理器,在这里我们可以管理HTTP请求头的信息。

学习总结—JMeter实现web接口测试实践举例_第5张图片

图5

        学习总结—JMeter实现web接口测试实践举例_第6张图片

图6

整个测试过程中,当我们需要查看运行结果时,我们需要用到监听器,这里我们新建一个察看结果树用于查看运行结果,察看结果树放的位置不同,查看的结果也不同。在线程组下添加察看结果树,查看线程组下所有请求的结果;放在具体某个请求下,只查看此请求的结果;若放在某个控制器节点下,则查看此控制器下节点执行的结果。我们这里放在线程组下。

学习总结—JMeter实现web接口测试实践举例_第7张图片

图7

以下是运行结果,在察看结果树中,可以以不同的显示方式查看请求信息及响应信息。

学习总结—JMeter实现web接口测试实践举例_第8张图片

图8

 学习总结—JMeter实现web接口测试实践举例_第9张图片

图9

学习总结—JMeter实现web接口测试实践举例_第10张图片

图10

根据测试需求,我们需要去判断是否登录成功了,即登录请求是否返回了登录成功的相关信息,这里我们就会用到JMeter中的断言,Jmeter中断言类型有许多,我们当前只举例使用响应断言,在实际的测试过程中,响应断言基本能够满足80%的验证问题,这里新建一个响应断言,来检查服务器响应数据是否返回预期想要的数据。

学习总结—JMeter实现web接口测试实践举例_第11张图片

图11

学习总结—JMeter实现web接口测试实践举例_第12张图片

图12

另外,我们可以新建一个断言结果,查看执行断言结果的信息。

学习总结—JMeter实现web接口测试实践举例_第13张图片

图13

下面分别是断言成功和断言是否的显示:

学习总结—JMeter实现web接口测试实践举例_第14张图片

图14

学习总结—JMeter实现web接口测试实践举例_第15张图片

图15

学习总结—JMeter实现web接口测试实践举例_第16张图片

图16

学习总结—JMeter实现web接口测试实践举例_第17张图片

图17

 

二、进入板块并进行发帖

由于后面的请求都需要填写IP和端口号,且都一样,所以这里我们可以把IP和端口号在用户定义的变量中进行参数化,后面使用时直接使用变量名,也方便了统一管理。

学习总结—JMeter实现web接口测试实践举例_第18张图片

图18 

创建并维护“进入板块”的HTTP请求。

学习总结—JMeter实现web接口测试实践举例_第19张图片

图19

创建并维护“发帖”的HTTP请求。

学习总结—JMeter实现web接口测试实践举例_第20张图片

图20

从上图可以看出,发帖这个请求的参数格式和之前的登录请求不太一样,这里我们需要去设置HTTP信息头,配置对应的Content-Type。

学习总结—JMeter实现web接口测试实践举例_第21张图片

图21

分别给进入板块和发帖添加响应断言,这里我们可以直接去匹配响应代码是否为200,添加完成后运行脚本,可以看到发帖后跳转了到发帖成功的页面(如图21),说明我们脚本执行通过,成功发帖。

学习总结—JMeter实现web接口测试实践举例_第22张图片

图22

前面我们是进入了第一个板块,然后进行发帖,如果我们想进入别的板块,或随机进入一个板块进行发帖,这个时候我们就需要用到JMeter中的关联,我们需要提取服务器给我们返回的板块信息。我们可以返回去看登录成功后跳转的页面返回的板块信息(如图23)。

学习总结—JMeter实现web接口测试实践举例_第23张图片

图23

这个地方我们只需要获取到1.page或3.page中的数字即可,因为这就是板块ID,在这里我们就可以用到正则表达式提取器。

在登录的HTTP请求下面新建一个正则表达式提取器。

学习总结—JMeter实现web接口测试实践举例_第24张图片

图24

学习总结—JMeter实现web接口测试实践举例_第25张图片

图25

利用正则表达式提取出来的值去参数化后面的请求。

学习总结—JMeter实现web接口测试实践举例_第26张图片

图26

学习总结—JMeter实现web接口测试实践举例_第27张图片

图27

运行一下,我们可以看到板块信息变成了4.page:

学习总结—JMeter实现web接口测试实践举例_第28张图片

图28

学习总结—JMeter实现web接口测试实践举例_第29张图片

图29

同时,我们登录论坛可以查询到板块4.page下确实发布了一条新帖,但是这里我们发现这个新帖的发表人是“游客”(如图30),我们用的账户Admin登录后进行发帖,所以这里正确的显示应该为“Admin”,为什么会是“游客”,这是因为我们在登录后并未记录Cookie信息,所以会出现这个现象,这里我们可以在线程下创建一个“HTTP cookie管理器”。

学习总结—JMeter实现web接口测试实践举例_第30张图片

图30

在线程下新建一个HTTPCookie管理器,参数维护采用默认值即可。

学习总结—JMeter实现web接口测试实践举例_第31张图片

图31

学习总结—JMeter实现web接口测试实践举例_第32张图片

图32

这里当我们再次运行脚本的时候会发现前面创建的正在表达式提取器未能匹配到数据,这是因为我们记录了Cookie后,登录成功后跳转页面的内容细微的变化(如图33),所以我们只需要把正则表达式修改为即可。

 学习总结—JMeter实现web接口测试实践举例_第33张图片

图33

再次执行,我们可以看到发表人已经显示为“Admin”了。

学习总结—JMeter实现web接口测试实践举例_第34张图片

图34

最后记录一个可以很好的测试和分析正则表达式的工具。

工具名:Regester

学习总结—JMeter实现web接口测试实践举例_第35张图片

 

你可能感兴趣的:(Jmeter学习笔记)