[本文系原创博文,首发在测试窝,如需转载请务必注明作者和出处]
本次分享的Jmeter适合零基础和初级的朋友,这里都是Jmeter常用的功能,希望对大家有帮助
Jmeter的两种录制脚本方法
录制1—— badboy
badboy下载:http://www.badboy.com.au/
Badboy介绍
Badboy是一款不错的Web自动化测试工具,Badboy 是澳大利亚的一个软件公司设计的,有免费版可以下载。
优势:(1)Badboy提供了将Web测试脚本直接导出生成JMeter 脚本的功能,并且这个功能非常好用,也非常简单。
(2)使用 jmeter 的代理服务器可以顺利录制完整的 http 请求,包括请求的头;但无法录制cookies,对于网站脚本,大多需要 cookies 支持,可以使用 badboy 来录制。
Badboy的使用
1,进入安装目录,直接双击
2,运行程序。
① 脚本的录制,输入URL地址,回车开始录制。然后就可以开始正常的业务操作了
② 点击record on/off结束录制,可以看到左侧被录制的网址。导出.jmx格式的脚本,文件—>Export to Jmeter....
3,打开Jmeter工具,选择“文件”--》“打开”选择刚才保存的文件(.jmx类型)
录制2——代理
1:创建一个线程组(右键点击“测试计划”—>"添加"—>“线程组”)
2:在“工作台”- 非测试元件 - 添加“HTTP代码服务器”
3:代理服务器的端口,默认8080,可自行修改,但不要与其它应用端口冲突
4:目标控制器:录制的脚本存放的位置,可选择项为测试计划中的线程组(根据实际来选择即可)
5:分组:
“分组”的概念是将一批请求汇总分组,可以把url请求理解为组。
“不对样本分组”:所有请求全部罗列
“在组间添加分隔”:加入一个虚拟的以分割线命名的动作,运行同“不对样本分组”,无实际意义
“每个组放入一个新的控制器”:执行时按控制器给输出结果
“只存储每个组的第一个样本”:对于一次url请求,实际很多次http请求的情况
6:点击启动
设置IE浏览器
IE—>“internet选项”—>“连接”—>“局域网设置”
勾选“代理服务器”下的复选框,填写地址,端口,端口一定要和Jmeter的端口一致
打开浏览器输入需要录制的web项目地址
jmeter会自动记录你IE所访问的页面
建议:不推荐这种录制方式,因为录制出来很多请求,搞不清楚那个请求是自己需要的
Jmeter badboy脚本录制详解
1,页面功能分析
1. 界面视图,模拟浏览器,能够进行操作
2. 需要录制脚本的URL
3. 点击运行URL
4. Summary:运行的各指标,响应时间,成功事物等
5. 参数:在录制到的需要参数化的地方能够在这里操作之后导入jmeter
6. 目录树,记录录制到的每一个操作
7. 录制按钮,点击之后记录操作
8. 停止按钮,在停止途中不会记录操作,如果需要再次开始再次点击录制按钮,会继续录制,在step1头部会出现红点。
9. 回放按钮
10. 回放所有
11. 倒回按钮,退回到前一步操作
12. 单独运行一个请求
2,录制
3,添加检查点
步骤1:停止录制后,添加检查点;
步骤2:回放
4,参数化——文本
步骤1:添加参数集
步骤2:修改循环次数
步骤 3 :修改查询参数步骤4:修改检查点参数
步骤5:回放5,结果报告
6,导出Jmeter
Jmeter的3种参数化方式(还有很多种,目前就学了3种简单些的)
1,用户参数
设置方式:添加→前置处理器→用户参数,设置如下:
说明:searchtxt是参数名称,用户_1/用户_2是参数的2个值。仅对于多线程时,每个线程会取其中一个值,若线程超过2个,则会重复取这2个值中的一个。若设置为1个线程,则此参数化方法无效。
2,csv data set config
设置方式:添加→配置元件→csv data set config,设置如下:
3,随机函数RandomString
设置方式:选项→函数助手对话框→选择函数为:_Random,设置如下:
说明:第一行是最小值:填写1,第二行最大值:填写100,点击生成:自动生成函数
复制函数到HTTP请求 值里面去
Jmeter之集合点
注意:
1.JMeter里面的集合点通过添加定时器来完成。
2.Synchronizing timer仅作用于同一个JVM中的线程。
3.Synchronizing Timer定时器,添加到请求之前或某个Sampler的子节点
1,Synchronizing timer
设置方式:添加→定时器→Synchronizing timer,设置如下:
Number of Simulated Users to Group by:集合多少人后再执行请求(也就是执行的线程数)
注意:等同于设置为线程租中的线程数,一定要确保设置的值不大于它所在线程组包含的用户数。
Timeout in milliseconds:指定人数 多少秒没集合到算超时(设置延迟时间以毫秒为单位)
注意:如果设置Timeout in milliseconds为0,表示无超时时间,会一直等下去。
线程数量无法达到"Number of Simultaneous Users to Group by"中设置的值,那么Test将无限等待,除非手动终止。
百度资料:https://www.cnblogs.com/deepstone/p/3338623.html
Jmeter之检查点(断言)
1,断言持续时间
设置方式:添加→断言→断言持续时间,设置如下:
如响应时间大于设定的最大值,则断言不通过,如上图,如果响应时间大于20毫秒,则断言不通过:
2,断言文件大小(Size Assertion)
设置方式:添加→断言→断言持续时间,设置如下:
Size to Assert -- 判断返回文件内容的大小
1,如果小于或者等于500个字节,则为绿色,通过,不会出现断言错误信息
2,可以设置返回的结果文件是等于大于等于指定字节来判断是否通过,如上图,如果返回的字节数大于500个字节,则断言判断不通过。