Jmeter做简单业务性能测试

1.通过Fiddler进行抓包,并且过滤一些非必须的接口以及一些资源文件的页面请求,fiddler设置只抓取相关的站点(如果不清楚,可以咨询开发)

2.在测试计划下添加“线程组”,并且取相应的名字

3.在线程组下设置好相应的"cookies管理"和“信息头管理”(信息头注意全局还是当个请求,如果是单个请求,通过一个简单控件器来绑定请求)

4.添加BeanShell PostProcessor 设置好相应的编码格式:prev.setDataEncoding("UTF-8");--------此步骤按实际情况是否需要

5.添加请求:设置好路径、参数(请求头/body内)、协议、方法

6.参数化和关联

例如:关联的写法

"{\"BuyCountVerifyResult\":null,\"ControlName\":null,\"Deadline\":\"1天\",\"EncodeId\":\"20160314025174\",\"HighSumInsuredResult\":null,\"Sub\":null,\"Tip\":\"\\/Pay\\/PayView\\/20160314210023585fRLLXxua6i?type=1\"}"

引用名称:EncodeId

正则表达式:EncodeId\\":\\"(.+?)\\",\\"HighSumInsuredResult

正则表达式:EncodeId":"(.+?)","HighSumInsuredResult(需要注意是否需要转义)

模板:$1$

匹配数字:1


后面使用此变量:http://abc.xx.com/Pay/PayView/${OrderNum}?

7.执行请求,观察结果



备注:

1.从字符串“abcdefg”中何意组合,随机生成5位的字符串,例:cbaef

随机字符串的使用:${__RandomString(5,abcdefg,)}

生成随机英文+数字:${__RandomString(8,qwertyuioplkjhhgfdsazxcvbnm,)}${__Random(10,100,)}

2.Jmeter参数化:通过函数助手找到_CSVRrad方法(第二种方法:设置集合点后,使用jmeter函数的参数化数据执行顺序出现混乱,解决方法就是 不要用函数的方式 用csv的控件:CSV Data Set Config)

CSV文件列号是从0开始的,第一列0、第二列1、第三列2、依次类推

${__CSVRead(E:\Jmeter_Test\OldUser.dat,0)}

3.需要注意请求头的数据格式():

X-Requested-With: XMLHttpRequest

Content-Type: application/json

4.注意请求的数据字符编码,默认为UTF-8,UTF-8/unicode/GB2312,如果在排查问题过程中发现请求的数据是乱码,需要加上"utf-8"


5.jmeter PUT请求  将参数直接写在 body data,否则不能显示请求参数

6.如果请求参数放在body中,并且数据格式为json,与其它接口请求有差异,需要单独添加信息头

7.正则表达式的规则:

1).模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东东),则可以是$1$,$2$等等,表示解析到的第几个值给str
2).匹配数字(0代表随机):0代表随机,-1代表所有,其余正整数代表将在已提取的内容中,第几个匹配的内容。

3).正则表达式含义(.+?)

():封装了待返回的匹配字符串。
.:匹配任何字符串。
+:一次或多次。
?:不要太贪婪,在找到第一个匹配项后停止

线程设置:

线程数:一般我们用来表示多少个用户,即我们测试时的用户数量

Ramp-up Period(in Seconds):每个线程执行间隔时间=ramp-up time/线程数(如果有10个线程和100秒的加速时间,则每个线程将在上一个线程启动后10秒钟开始,总共100秒的时间才能使测试完全达到速度)

表示每个用户启动的延迟时间,上述我设为1秒,表示系统将在1秒结束前启动我设置的1000个用户

调度器的配置:我们勾选调度器时,将会出现这个面板

启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。

结束时间:与启动时间对应,表示脚本结束运行的时间。

持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。 

启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。 

注意:如果我们需要用到调度器来设定持续时间,如果线程数不够多到持续时间结束,我们就必须将循环次数勾选为永远,特别地,如果线程组里面有其他的循环,我们也需将该循环次数勾选为永远(如我上面录制的脚本中的Step1也是一个循环,需要将永远勾选),否则,按我如上配置,将永远去掉勾选,文本里填1,那么无论你将持续时间启动时间结束时间等设置多少,系统运行1000次后,将会停止不再运行

结果分析:

Label:标签,即我们上面的请求名称

#Samples:本次场景中一共发出了多少个请求

Average:平均响应时间

Median:中位数,也就是50%的用户的响应时间

90%Line:表示90%的用户的响应时间,如果最小值和最大值相差很大的话,我们一般选择这个作为最终测试结果(测试过程中启动线程慢,会导致第一个请求更加消耗时间,去除Max比较合理,响应时间参考此值更加合理)

Min:最小响应时间

Max:最大响应时间

Error%:出错率,本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量

KB/sec:每秒从服务器端接受到的数据量


参考文献:

http://jingyan.baidu.com/article/15622f2475601dfdfdbea548.html

http://www.tuicool.com/topics/11350013

http://www.cnblogs.com/zhuque/category/427562.html

http://jmeter.apache.org/usermanual/test_plan.html

http://blog.csdn.net/musen518/article/details/50294009

http://book.51cto.com/art/201204/327355.htm

http://blog.csdn.net/u012338364/

http://blog.sina.com.cn/s/blog_702a7c3f0101cqkx.html

http://www.51testing.com/html/29/609429-862644.html

http://www.yiibai.com/jmeter/jmeter_regular_expressions.html

http://blog.csdn.net/sd4015700/article/details/50348978

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值