jemter使用
上一篇 /
下一篇 2016-02-03 16:47:18
/ 个人分类:jemter
在实际工作中,我主要应用JMeter对接口做功能测试,所以下面主要介绍一下JMeter的使用
基本介绍
下面是我的一个测试脚本,通常一个文件会包含下面这些组件。我通过简单控制器与DEBUG Sampler来组织管理不同的接口,验证点主要通过写一些Beanshell脚本来实现。对于一些复杂的操作,如果网上能找到到现成的资源,比如JAR,CLASS文件会直接在Beanshell PreProcessor/PostProcessor引用。另外在Jmeter里写Beanshell不容易DEBUG,所以还是建议复杂的功能直接在Eclipse里编写,然后生成JAR包. 关于Beanshell使用会在后面介绍
使用Beanshell 在 JMeter
BeanShell是一种完全符合Java语法规范的脚本语言,并且有自己的一些语法和方法[官网](http://www.beanshell.org/)
我的脚本几乎所有验证都是通过Beanshell脚本,只有少部分应用了Response Assert。
Beanshell 常用内置变量
(http://jmeter.apache.org/api/org/apache/jmeter/threads/)
下面是一些实际的例子
log.info("log information")
它是类似的与vars, 相应的属性在在文件jmeter.properties中定义
另外如果引用外部JAR包,也可在TEST PLAN中配置,在JMeter中点击Test Plan 结点,就会看到下面的界面,可以直接添加JAR包所在路径
其它
CSV配置组件使用
CSV_Data_Set_Config 当发送多组同样的请求,只是所带参数不同,这时可以加这个配置组件
然后在SAMPLER中可以应用上面这些变量配合循环控制器
在测试过程中,我们需要一些测试数据来自于数据库,这时我们需要在Jmeter连接数据库
下面以连接MySQL数据库为例
其它数据库连接请参考下图:
因为我们在
接口测试中,更多的时候是获取数据,所以基本都用“SELECT"。如果想INSERT数据,需要选择“Callable Statement"在"Query Type"
在使用过程中注意以下几点:
添加监听器
Aggregate Report 是 Jmeter 常用的一个Listener, 中译为“聚合报告”,每一列具体表示如下。
Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值
#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数
Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec
Jmeter 与 Jekins 集成
说这个之前简单说一下如何在命令行执行JMeter
首先配置JMETER_HOME环境变量,值即为你Jmeter解压路径
在命令行运行jmeter -v , 正确返回当前版本,证明环境OK
运行jmeter -n -t script.jmx -l log.jtl
接下来做的事,lose同学已经推荐了一个链接 (https://testerhome.com/topics/2580),我觉得已经充分说明问题了,所以这里不再详述。
(本文完)
收藏
举报
TAG: