jmeter目录结构:
bin目录是可执行文件,jmeter.bat启动,里面可以设置jvm参数(可以配置堆内存的大小),一般情况heap最多设置为物理内存的一半,默认设置为512M,如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出
◆jmeter的log在jmeter.log中查看
◆jmeter.properties文件中有一个属性log_level.JMeter,可以设置改变日志详细度。默认是info,可改为debug
◆docs下是jmeter的文档,主要是API。java docs
◆extras目录下的文件提供了对ant的支持,可以利用ant来实现自动化,例如批量执行脚本,产生html报告
◆运行jmeter的时候会产生一个jtl文件,把他放到extras目录下,运行ant-Dtest=文件名 report就可以生成测试统计报表
◆lib目录下的ext子目录是jmeter的核心jar包;junit子目录是放junit脚本的
◆用户扩展所以来的包直接放到lib下即可,不需要放到lib/ext下
jmeter常用功能
◆测试计划:所有内容都是基于这个计划(一般不需要管,也可以添加jar包等)
◆一般常用线程组:可以理解为虚拟用户组(右键测试计划-->添加-->Threads(Users)-->线程组)
◆setup thread group:可用于执行预测试操作,这些线程的行为完全像一个正常的线程组元件。类似Loadrunner中的init(右键测试计划-->添加-->Threads(Users)-->setup thread group)
◆taerdown thread group:可用以执行测试后的动作。这些线程的行为完全像一个正常的线程组元件。类似Loadrunner中的end(右键测试计划-->添加-->Threads(Users)-->taerdown thread group)
录制有两种方式,一种是通过badboy工具,另一种是通过jmeter自带的代理
Badboy录制步骤
◆下载:http://badboy.com.au/
◆打开badboy,点击工具栏上的红色圆形按钮,在地址栏输入被测试项目的地址
◆录制完成后,点击工具栏旁边黑色按钮,结束录制。选择“文件”--Export to Jmeter...
◆演示录制(1.通过badboy录制完之后,单击File-->Export to Jmeter。2.打开Jmter-->文件-->打开-->找到之前保存的文件,就录制成功了)
注:录制成功后,最好把脚本过一遍。
jmeter代理录制步骤
◆创建一个线程组(右键点击“测试计划”-->“添加”-->“线程组”)
◆在“工作台”-非测试原件-添加“HTTP代理服务器”
◆代理服务器的端口,默认8080,可自行修改,但不要与其他应用端口冲突
◆目标控制器:录制的脚本存放的位置,可选择项为测试计划中的线程组(根据实际来选择)
◆分组:对请求进行分组。“分组”的概念是将一批请求汇总分组,可以把url请求理解为组
-“不对样本组”:所有请求全部罗列
-“在组间添加分隔”:加入一个虚拟的以分割线命名的动作,运行同“不对样本分组”,无实际意义
-“每个组放入一个新的控制器”:执行时按控制器给输出结果
◆“只存储每个组的第一个样本”:对于一次url请求,实际很多次http请求的情况
◆点击启动
jmeter代理图片步骤版本:↓
1.先添加一个线程组(添加-->Threads(Users)-->线程组)
2.在工作台右键,添加“非测试元件”-->“HTTP代理服务器”
一般就是默认状态就可以,不需要进行修改。
需要注意的是,目标控制器。需要选择我们的控制器(Test Plan>线程组)
点击最下面的“启动”
3.进行浏览器的设置
注意:因为现在是本机,所以地址就是localhost
端口这边的填写,必须和jmeter里面设置一致
4.关闭重启浏览器
不推荐jmeter代理模式的录制方式是因为,他会录制出很多可能并不是我们需要的东西,就比较麻烦
5.录制完成后停止。不要忘了把局域网这个关闭
badboy脚本开发
badboy中添加检查点
1.打开网站搜索,然后选中我们需要增加检查点的文字
2.然后单击菜单栏“Tools”-->“Add Assertion for Selection”
3.怎么查看是否录制成功呢?单击按钮这边 PLAY ALL
检查完之后,“ Check for text"Badboy"”前面会显示一个√,说明检查正确。之前那个演示是问号说明还存在问题。
所以后来就是creat new step再操作了一遍用百度搜索“Badboy”的情况,这次是顺利完成的
badboy中的参数化-文本
-建立参数化列表
-在请求中替换${参数名称}
-中文可能有乱码,改下请求中的编码即可
1.单击“Variables”-->右键-->“Add Variable...”
2.输入名字(searchtxt)和当前值(Eve,Eve软件测试),其他保持默认。单击OK。参数化列表完成
3.找到录制中搜索的那块儿,然后将value值改成(${searchtxt}),里面的值就是我们之前创建的variables的名字
然后这边的值就已经替换掉了(至于替换得值,需要根据业务来定,需要知道请求里面传哪些参数)