Jmeter入门
1、Jmeter基本元件
1.1 Test Plan:jmeter测试⾃顶层元件,代表⼀个测试计划,其⼦节点可以是“Thread Group”元件和“non-Sampler”元件
1.2 Thread Group:线程组,⽤于设计线程启动、并发等参数
1.3 Sampler:包含了各种协议的采样器,例如HTTP、TCP、UDP等等
1.4 Listener:监听器,⽤于采集jmeter运⾏过程中交互指标信息
1.5 Assertion:断⾔,⽤于验证你所需要的期望信息
1.6 Pre-Processor: 前置预处理器,⽤于采样器执⾏器的设置等
1.7 Post-Processor:后置处理器,⽤于采样器运⾏后的处理
1.8 Configuration: ⽤于辅助配置等作⽤
1.9 Timer:定时器,⽤于时间处理或并发处理等等
1.10 Controller:⽤于逻辑控制,例如循环、判断分⽀等等
2、 jmeter元件执⾏顺序⼀般规则
2.1 在Jmeter中,其执⾏顺序是以Sampler(采样器)为中⼼的,若该Sampler处于disable出状态,则其关联的其他元件都不会被执⾏
2.2 线程元件执⾏顺序如下: 1. setUp Thread Groups 2. Thread Groups 3. tearDown Thread Groups
2.3 当⼀个Sampler执⾏时,其顺序如下: 1. Configuration elements 2. Pre-Processors 3. Timers 4. Sampler 5. Post-Processors 6.
Assertion 7. Listeners
3、 jmeter线程执⾏顺序
3.1 setUp Thread Groups 2. Thread Groups 3. tearDown Thread Groups
4、常⽤命令⾏选项解释
4.1 jmeter -s 运⾏jmeter服务器模式
4.2 jmeter -n 运⾏jmeter⾮GUI模式
4.3 jmeter -t 运⾏jmeter测试⽂件(.jmx)
4.4 jmeter -l path 记录jmeter结果⽇志⾄path路径指定的⽂件
4.5 jmeter -j 启⽤jmeter运⾏⽇志,即jmeter.log
4.6 jmeter -r 运⾏已经定义好的jmeter远程服务(远程主机在jmeter.properties中配置)
注:所有的命令选项是可以组合使⽤的,其他的命令选项⼀般情况下⽐较少⽤,有兴趣的⾃⼰去尝试
5、BeanShell脚本
什么是BeanShell脚本
BeanShell是⼀个⼩型嵌⼊式Java源代码解释器,具有对象脚本语⾔特性,能够动态地执⾏标准JAVA语法,并利⽤在
JavaScript和Perl中常见的的松散类型、命令、闭包等通⽤脚本来对其进⾏拓展。 BeanShell不仅仅可以通过运⾏其内部
的脚本来处理Java应⽤程序,还可以在运⾏过程中动态执⾏你java应⽤程序执⾏java代码。 因为BeanShell是⽤java写的,
运⾏在同⼀个虚拟机的应⽤程序,因此可以⾃由地引⽤对象脚本并返回结果。
意味着使⽤Beanshell你可以随时调度java的任何标准的API、⾃定义的jar等等,对于有java基础的你是不错的选择。
jmeter常⽤的接口
5.2.1 vars: jmeter变量对象,通过vars对象,可以使⽤put和get⽅法访问jmeter中⽤户定义的变量
5.2.2 ctx: jmeter线程上下⽂对象,通过get*()和put*()⽅法,允许查找或更新线程
5.2.3 log: jmeter⽇志对象,允许⽤户使⽤调试 debug*(),信息 info*(), 警告 warn*(), 错误 error*()进⾏输出记录
5.2.4 props: jmeter属性对象,允许哟洪湖通过get()或put()⽅法访问或设置jmeter中的属性
5.2.5 SampleResult: jmeter采样结果对象,允许⽤户使⽤get*()⽅法访问前⼀个采样器的结果
5.2.6 ResponseCode: jmeter采样器响应码,允许⽤户获取前⼀个采样器的响应码
完整的官⽅BeanShell接口说明如图
jmeter如何连接JDBC
- 添加配置元件JDBC Connection Configuration
- 配置JDBC Connection Configuration
- 需要配置的参数有:
(1)Variable Name:test 后续JDBC Request中也会用到这个值;
(2)Database URL:jdbc:sqlserver://192.168.1.2:1222;databaseName=DBname (大家写自己正确的就行,我为了方便随便写的IP:端口号);
(3)JDBC Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver (SqlServer固定写法,每个数据库的不一样);
(4)Username Password数据库的用户名和密码; - 添加JDBC Request
- 添加监听器即可查询结果