jemeter基础知识

一、目录结构

1、bin目录

examples:        目录中有CSV样例

jmeter.bat         windows的启动文件

jmeter.log         jmeter运行日志文件

jmeter.sh         linux的启动文件

jmeter.properties     系统配置文件

jmeter-server.bat windows分布式测试要用到的服务器配置

jmeters-server linux分布式测试要用的服务器配置

其中系统配置文件中的SSL设置重点关注如下几个:

指定HTTPS协议层

https.default.protocol=TLS

指定SSL版本

https.default.protocol=SSLv3

设置启动的协议

https.socket.protocols=SSLv2Hello SSLv3 TLSv1

缓存控制,控制SSL是否可以在多个迭代中重用

https.use.cached.ssl.context=true

2、docs目录

接口文档目录。例C:\apache-jmeter-3.0\docs\api下的index.html

3、extras目录

扩展插件目录。提供了对Ant的支持,可以使用Ant来实现自动化测试,例如批量脚本执行,产生html格式的报表,测试运行时,可以把测试数据记录下来,jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,运行"ant -Dtest=文件名 report",就可以生成测试统计报表。

4、lib目录

所用到的插件目录,里面均为jar包。jmeter会自动在jmeter_HOME/lib和ext目录下寻找需要的类,lib下存放JMeter所依赖的外部jar:如httpclient.jar、httpcore.jar、httpmime.jar等等。

其中lib\ext目录下存放有Jmeter依赖的核心jar包,ApacheJMeter_core.jar、ApacheJMeter_java.jar在写client端需要引用,JMeter插件包也在此目录下。

lib\junit下存放junit测试脚本.

5、Licenses目录

jmeter证书目录

6、Printable_docs目录

用户使用手册,例C:\apache-jmeter-3.0\printable_docs下的index.html

二.线程组设置:

线程组:虚拟用户数(整数,模拟人数)

ramp up period :设置的虚拟用户数需要多长时间全部启动。如果线程数为20,时间为10,20/10=2,也就是每秒钟启动2个线程,

循环次数:每个线程发送的请求次数,如果线程为20,循环次数为100,那么每个线程发送100次请求,总请求数为20100=2000.运行时间就是全部启动时间10(循环次数)10=100秒。

如果勾选了“永远”,那么所有线程会一直发送请求,知道选择停止运行脚本,

调度器:可以更灵活的设置运行时间等,可以设置启动,结束,持续,延迟等

总结:

线程/间隔时间=增加线程数策略

线程数*循环=最后的请求次数

间隔*循环=运行时间

监听器:聚合报告(单位:毫秒)

前提:添加监听器——聚合报告

解释

label:定义http请求名称

average:平均响应时间-默认情况下是单个request的平均响应市场,当使用了transaction controller时,也可以以transaction为单位平均响应市场

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

90%line:90%用户的响应时长

min:访问页面的最小响应时长

max:访问页面的最大响应时长

error%:错误请求的数量/请求的总数

throughtput:默认情况下每秒完成的请求数(request per second),当时用了transaction controller时,也可以表示类似loadrunner的transaction per second数。

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

可以将文件保存,保存文件后缀是.jtl

三.jmeter元件的作用域与执行顺序

元件的作用域

配置元件:会影响作用范围内的所有元件

配置处理程序:在其作用范围内的每一个sampler有效

定时器:对其作用范围内的每一个sampler有效

后置处理程序:在其作用范围内的每一个sampler元件之后执行

断言:收集起作用范围的每一个sampler元件的信息并呈现

sampler:元件不和其他元件相互作用,因此不存在作用域的问题

执行顺序(如果存在多个相同类型的元件按照从上到下的顺序执行):配置元件、前置、定时器、sampler、后置、断言

四.参数化

第一种参数化:用户参数

1.在需要的作用域中右键添加-前置处理器-用户参数假设名为rou

2.添加变量 为rou

3.添加用户:每个用户代表一个参数的值

4.在接口中的参数找到需要参数化的值

5.修改为:${rou}

当需要多个参数化时,可以多次添加变量。

第二种参数化:

CSV Data Set Config

1.在需要的作用域中右键添加-配置元件CSV Data Set Config

2.设置filename文件名: 即残说话要引用的文件名,这里是路径 比如:d:\number.txt。前提已经有了这个文件

3.file encoding文件编码:可以不填,填写的值为gbk,utf-8

4.varlable names(comma-delimited): 变量名(多个变量可以用逗号分割)

5.delimiter(use’\t’for tab): 参数文件中要有多个变量值的分隔符,\t表示用tab键分割,默认分隔符是‘,’(逗号)

6.recycle on EOF?:结束后是否循环?默认是True

五.集合点:

在请求前右键添加定时器-synchronizing timer

位置:要放到集合的操作前,也就是放到需要集合的请求前

设置:名称自定义

number of simulated users to group by:

整数,就是多少人并发数

注意:线程和并发人数的关系,并发人数不能大于线程数

六.检查点:(jmeter中叫做断言)

1.jmeter的检查点就是断言中的响应断言

添加-断言-响应断言

如果查看断言结果:添加-监听器-断言结果

在响应断言中点击添加:把需要检查的值,输入即可

如果检查的值是变量,那么可以把变量的名输入。例如:${rou}

2.断言的持续时间:

例如:百度首页显示时间不能超过1s,那么这种就可以用持续时间断言

设定:输入持续时间(毫秒):1000

运行后,在断言结果中可以查看

3.返回结果字节大小断言

右键在需要断言的地点添加-断言-size assertion

填写字节大小即可

运行后,在断言结果中可以查看

七.动态关联:jmeter中关联的方法:一般为正则和xpath

步骤:lr中小飞机程序网站的设定,勾选第三项

更新后,每次登录会有一个变化的session值。

<session=XXX,id=XX,name=XX>html

LB=session

RB=id=XXX

1.小飞机的nav.pl接口是发送登录接口

2.在nav.pl接口上点击右键-添加-后置处理器-正则表达式提取器

比如原有的html为

可以讲value的值用正则表达式编写(.*)

解释:正则表达式都是在()中表示,点.代表一个或多个字符,星号*表示出现一次或者多次

模板:在正则表达式中输入以下内容:

引用名称,随意编写比如session

正则表达式name=usersession value=(.*)>

模板:111

匹配数字(0代表随机):1

解释:模板:如果前面的正则表达式取了不止一个参数,那么这里需要指定参数的组别,如果该参数为111,则表示取得第一个值,222表示取得第二个值,以此类推,如果一个html可以配出很多值,那么取html中的第几个这里就填写几个

匹配数字:0随机,-1取所有值,以数组形式存储:1,2,,,,1就是取第一个值,依次类推

4.判断管理是否正确

4.1添加断言:输入${session}

5.在接口的传值中,可以把usersession后的值填写

5.1${session}

八.jmeter图形监控(扩展)

前提下载插件:http://jmeter-plugins.org/downloads/add/

添加扩展插件:1.将jmeterplugins.jar包复制到jmeter的lib目录下面的ext目录下面,重新启动jmeter(jmeter plugins-standard-1.2.0.zip)

2.我们需要将server agent目录及下面的文件赋值到我们测试的服务器上,然后点击打开,它的默认端口为4444,如果我们服务器是windows的,双击startagent.bat即可,如果服务器是Linux的,在linux中执行start agent.sh即可(server agent-2.2.1.zip)

jemeter基础知识jemeter基础知识 小丫玮 发布了4 篇原创文章 · 获赞 1 · 访问量 679 私信 关注
上一篇:Jemeter学习环境部署。


下一篇:利用jemeter实现简单接口测试