三、使用Jmeter开始测试
1、打开脚本
用Jmeter打开我们上面保存的文件。
打开之后如图所示:
2、修改脚本
a、线程组
在测试计划里面选择添加既可以看到线程组。
如上图:
名称:可以随意取,我们保持创建是自动分配的名称
注释:随意
在取样器错误后要执行的动作:我们选择继续,错误之后依然继续执行
线程数:一般我们用来表示多少个用户,即我们测试时的用户数量
Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。
循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。
调度器的配置:我们勾选调度器时,将会出现这个面板
启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。
结束时间:与启动时间对应,表示脚本结束运行的时间。
持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。
启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。
注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行。
b、关于HTTP请求
关于HTTP请求,我们录制的脚本里面有,这里介绍一些常用的属性。
如图所示:
点击HTTP请求,将会出现如下界面:
其中:
名称:可以随意取,我们可以根据录制脚本的路径来命名
注释:可以对该界面做一个简单介绍
服务器名称或IP:即我们的服务器或者IP的地址,我因为是在本机上的项目,故填写localhost,可以填写127.0.0.1。
端口号:我用的是tomcat,自己设置的端口号为8086(tomcat默认为8080)
后面的超时定义可以不用填写。
Implementation:这里我们录制时默认填写为JAVA
协议填写为:http
方法为:GET
Content encoding:编码可以不用填写
路径:即页面的路径;下面的重定向等选择可以根据需要勾选,这里我们保持录制不修改。
Parameters参数:即跟着路径一起发送的参数及文件
下面的代理服务器等可以忽略,按需要填写。
c、参数化
如下,我们为请求发送的参数来参数化。
上述的例子为登录的用例,登录有两个参数:EMAIL和DEVELOPER_PASSWORD,在实际测试中,当我们需要用到不同的用户来登录的时候,我们可以用到参数化。
1)、我们新建一个文件,这里我新建的是一个txt文件,命名为c.txt,里面的内容为
web@qq.com,111111
col@qq.com,111111
mon@qq.com,111111
2)、在jmeter中的【选项】中选择【函数助手对话框】,将会弹出如下对话框:
其中:
CSV file to get values from | *alias:要读取的文件路径,为路径
CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0
如上图所示,我们读取的是c.txt里面的第一列用户名(如果要读取第二列的密码,只需将0改成1即可,往后类推),点击【生成】按钮即可生成函数,我们使用时即拷贝生成的函数字符串:${__CSVRead(E:c.txt,0)}。
其他函数后面介绍。
d、断言验证
在web测试中,有的时候,即使我们测试返回的response code为200,也不能保证该测试是正确的,这时候,我们可以用到响应断言,通过对比响应的内容来判断返回的页面是否是我们确定要返回的页面。
选择我们要判断的页面,点击添加断言----响应断言,将会出现如下图:
名称:随意,这里我们不做改动
注释:随意
Apply to:这里我们选择默认值
要测试的响应字段:这里我们选择响应的文本,即返回的页面信息
模式匹配规则:这里我们选择包括,即响应的文本是否包括我们验证的信息
要测试的模式:开发者名称,即我们需要验证,开发者名称是否在响应文本中存在,也可以添加更多的字段来验证。
其他还有文件大小和响应时间等的断言,后面介绍。
e、添加监听器
我们做性能测试的时候,经常需要各种数据来验证我们的测试结果,Jmeter里面也提供了相关的功能,这里主要说一下Aggregate Report聚合报告。
点击添加---监听器,选择:查看结果树,和聚合报告,如果需要看到断言信息也可以选择断言结果,将设置的一切保存之后,然后点击启动,系统将会运行,将结果在监听器中表现出来。