jmeter学习之jforum注册2

上一篇完成了jforum基本注册注册用户名,密码等是直接写死在请求中的;接下来实现下注册信息的参数化,顺便准备后续用到的测试数据(用户账号)。

1、首先创建execl文件,为了方便只写入200个需要注册用户信息:分别是username,email,pwd,pwd_confirm,然后保存为.csv文件

 

2、在上一篇完成的脚本上修改添加CSV Data Set Config

 

参数详解:

名称(Name ):该元件名称,最好有业务意义
注释(Comments):元件的注释
文件名(Filename ):引用文件地址。可以是绝对路径,也可以是相对路径(相对于%JMETER_HOME%\bin目录或者脚本文件所在目录)。如果是分布式测试,不同负载机jmeter的安装目录不同建议填写性对路径
文件编码(File Encoding):读取参数文件时的编码格式,一般添加utf-8,保存参数文件也应该是utf-8
变里名称(Variable Names):变量名列表。对应参数文件每列的变量,数量要与参数文件列数相同。如上图的userName,email,pwd,pwd_confirm,4个参数名对应我参数文件的每一列。${userName}的方式引用
忽略首行(Ignore first line):是否忽略首行,即是否忽略参数文件的第一行,如第一步创建的参数文件是没有表头的,选false。
分隔符(Delimiter):参数分隔符,将一行数据分隔成多个变量,认为逗号,也可以使用tab。如果参数文件是tab分割,此处填"\t"。
是否允许带引号?(Allow quoted data?):是否允许变量使用双引号,即参数文件中的参数是否带了引号,允许的话,变量将可以括在双引号内,并且这些变量名可以包含分隔符。
遇到文件结束符再次循环?(Recycle on EOF?):是否循环参数文件内容认为 True,为false参数文件遍历完后不在循环。
遇到文件结束符停止线程?(Stop thread on EOF?):如果线程数超过了数据文件中的变量,是否停止,认为 False。当Recycle on EOF为True时,此项无意义。
线程共享模式(Sharing mode):共享模式,即参数文件的作用域。如果希望每个线程拥有自己独立的值集合,那么就需要创建一系列数据文件,为每个线程准备一个数据文件,如test1.csv、test2.csv等,使用文件的方式test${__threadNum}.csv,并将Sharing mode设置为Current thread。
1)所有线程All threads(认):测试计划中的所有线程组中的所有的线程都有效。
2)当前线程组Current thread group:对当前线程组中的线程有效。
3)当前线程Current thread:对当前线程有效。

 3、修改post请求,并且添加汇聚报告,汇总报告,(因为执行的线程多,查看结果树占用大量I/O实际测试中也要禁用,但是学习中暂时不禁用,多等一下)

 

 

 

4、运行查看结果

通过查看数据库成功注册了200个用户,成功率1(我执行了2次,第一次只注册了138个用户,成功率为0.69,尚不知道什么原因,成功率太随机了)

 

 

 

 

接下来查看报告

 

 

 

 

 

一个问题:我样本是200(即只有200个线程,循环1次),但是报告中的#样本是600?

网上寻找答案:因为聚合报告是累加的,即每次运行的结果统计都是基于前一次运行的结果进行统计包括发起的请求样本数等都是叠加的。比如我11:00运行一次,发起10个请求,11:20运行一次,发起10个请求,这时聚合报告显示请求数为20个,而此时的吞吐量和第一次运行相差甚远,它把11:00到11:20期间非运行状态的时间也算进去了。所以,总时间增大,吞吐量变小。

不想累加的运行之前记得点击“清除全部”

再次运行看,样本数是200正常:

 

 

 

 

 

 成功注册了200个,但是查看结果树有很多post请求失败了

 

 

 第二个问题:注册全成功了,但是查看结果树有失败的

分析:首先查看结果成功的请求,注册成功后请求注册成功页面重定向

 

 然后响应OK

 

 再次查看失败的请求:注册成功后请求注册成功页面重定向

 

 但是响应是个重定向,看链接应该是定向到首页

 

 也就是说这2个都注册成功了;但是流程不一样

一个注册成功重定向注册成功页面,然后返回注册成功页面;另一个注册成功重定向注册成功页面,返回的还是一个重定向,定向到首页;但是我写的响应断言是根据判断注册成功页面来,所以另一个流程没有返回成功页面,响应断言失败。

重新写响应断言,根据链接来写,不同的流程都定向到注册成功页面,就根据这个写,对重定向的http请求做响应断言(至于为什么注册成功后返回的流量不一样,尚不知道原因,也不是关注的重点,重点是学习jmeter,分析结果,写出好的脚本来)

查看结果树,post请求重定向,但是需求是只对其中的一个做响应断言

 

 这里选择url样本:是对sample的url进行断言。如果请求没有重定向(302),那么就是这个就是请求url。 如果有重定向(且跟随重定向),那么url就包含请求url 和 重定向url;因为有两个流程(1.重定向注册成功页面,2.重定向注册成功页面重定向首页)所以添加2个

 

 

 

 

 

 

 

然后重新运行看下结果:

1.查看结果

 

 

 

 异常为0,查看结果树全都是绿色的。

在查看MysqL添加了200个用户的数据(原本有8个)

 

 

 在查看jfroum后台管理,确认成功。

 

 

 到此批量参数化注册frorum脚本完成,可以通过上面的汇聚报告、汇总报告查看性能指标。

 

脚本:https://files.cnblogs.com/files/blogs/758732/jforumregist_2.7z?t=1657551106

 

相关文章

Jmeter:Authenticationcredentialswerenotprovided上次在使...
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:...
jmeter默认语言设置: 1、临时设置:进入options--ChooseLa...
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加...
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了...
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent...