这篇,我们继续在前一篇性能测试用例基础之上,添加一点改变(添加断言),同样逐步分析每一个条件,来设计JMeter上的性能测试用例。
网站性能测试案例2:
1.用户人数10人,一分钟之后,全部对服务器进行施压。
2.用户分别访问3个页面,而且是所有用户同时进行
3.服务器的URL不能写死,同前面一样。
4.对每一个请求进行断言,响应时间在5秒之内,否则就标记失败。
5.响应内容不能显示Error和Warning
6.生成图表和表格报告。
设置并发用户数
这里我们在前面的测试计划里,新建一个线程组,名称是TestCase-2, 用户和用户进来的时间都有具体要求,根据第一个条件,JMeter上第二个线程组的线程设置如下。
10个线程数没什么好解释的,第二个60秒就是条件所说的,在一分钟之后,全部用户处于并发状态。
访问三个页面
三个页面的访问,我们这里不变化,同时带上思考时间,我们可以在TestCase-1这个线程组下复制三个请求过来。
服务器地址设置
服务器地址在控制元件里面的HTTP请求默认值设置,依然从前面一个用例里复制过来。
对请求进行断言
前面我们设计用例,没有说断言这个需求,只是考虑了给服务器发送请求和测试运行,观察报告,这里我们需要多加一步,就是对请求的结果进行判断,如果不符合条件这个请求就标记失败状态。一般来说,网页访问有258原则,所以我们设置页面响应时间大于5秒就报错。
右键TestCase-2.添加一个断言持续时间,并设置5000毫秒。
对响应内容进行过滤和断言
有时候我们响应内容如果发生错误或警告,响应体这种包含Error和Warning这样字符串。这里,我们可以通过响应断言这个监听来实现过滤和判断。
上面条件表示不包含Error和Warning的断言,如果出现,说明请求失败。
生成报告
报告和前面一样,选择自己常用的监听类型。我点击运行一下,发现所有请求都是失败状态。
看到错误,不要着急,我们来分析下为什么都请求状态是失败的。这篇我们设计了两个断言,一个是请求时间不能超过5秒,第二个是响应文本不能包含Error和Warning字眼。这全部报错,说明第二个条件引起的可能性更大,比较当前我们10人并发,响应时间肯定不错超过5秒。所以,我们修改以下不包含的关键字来测试下。
我们把不包含的关键字替换成,严重错误和崩溃。
保存,测试运行
发现,在Java+Selenium请求这个页面还是出现断言失败,还是存在我们不包含的关键字,猜测这个页面有“崩溃”这个文本出现。
本篇介绍的第二个用例,和第一个相比,主要是增加了断言部分的介绍和使用,作为一个测试人员,设计用例其实不难,难的是如何进行高效的断言。