测试计划:是使用jmeter进行测试的起点,是其他测试元件的容器,一个完整的测试计划
包括一个或多个线程组,逻辑控制器,取样器,监听器,配置元件
图中标红的是在使用JDBC request时使用的MySQL驱动的文件路径
下载mysql-connector-java-5.1.40文件,下载后解压
点击“浏览”找到mysql-connector-java-5.1.40文件中的mysql-connector-java-5.1.40-bin.jar文件
线程组:线程组是每个任务都要线程去处理,所有任务必须在线程组下面创建
线程数:设置发送请求的用户数目,即并发数
Ramp-Up Period(in second):创建完所有线程的时间,防止对服务器有太大的负载
循环次数:请求得重复次数(所有请求数=并发数*循环次数)
启动时间:测试计划的启动时间
结束时间:测试计划的结束时间
持续时间:测试计划持续时间
配置元件:配置元件维护Sampler需要的配置信息,配置元件并不发送请求(除了HTTP代理服务器例外),并根据实际的需要会添加或修改请求的内容
配置元件“用户定义的变量”会在测试的初始阶段执行(无论它处于测试树的那个位置)
配置元件对其所在的测试树分支有效
HTTP Cookie Manager
该属性管理器用于管理Test Plan运行时的所有cookie。HTTP Cookie Manager可以自动存储服务器发送给客户端的所有Cookie,并在发送请求时附加合适的Cookie
同时,也可以在HTTP Cookie Manager中手动添加一些cookie,这些手工添加的cookie会在发送请求时被自动附加到请求
如果在一个测试计划内有多个Cookie Manager,Jmeter目前无法指定哪个被使用。所以,一个测试计划内最好只有一个cookie manager。并且,一个manager里的cookie并不能被其它manager所引用。所以在使用多个Cookie Managers时要谨慎。
如果选中红框中的选项,意味着线程在每次迭代时清除自己会话中的所有Cookie.
HTTP Header Manager
该属性管理器用于定制Sampler发出的HTTP请求的请求头的内容。不同的浏览器发出的HTTP请求具有不同的Agent,访问某些有防盗链的页面时需要正确的Refer...这些情况下都需要通过HTTP Header Manager来保证发送的HTTP请求是正确的
HTTP Cache Manager
该属性管理器用于模拟浏览器的Cache行为。为Test Plan增加该属性管理器后,Test Plan运行过程中会使用Last-Modified、ETag和Expired等决定是否从Cache中获取相应的元素。
注意:如果Test Plan中的某个Sampler请求的元素是被Cache的元素,则Test Plan在运行过程中会直接从Cache中读取该元素,这样Sampler得到的返回值就会是空。在这种情况下,如果为该Sampler设置了Assertion检查响应体中的制定内容是否存在,该Assertion就会失败。
HTTP请求默认值
这个组件可以为我们的请求设置默认值,比如测试计划里的所有请求都是发送到同一个服务器,这时我们就可以用这个组件配置好红框内标记参数就可以啦,这些请求就会使用组件里的值,在其他的请求中只需要配置请求的具体路径就ok
HTTP请求
http请求是发送请求的组件,因为在HTTP请求默认值中已经配置好服务器和端口号所以这里不需要配置,如果未使用http请求默认值那就需要在这里配置
红框1:这个是接口
红框2:请求的方法(如果是get请求就不需要bodydata)
红框3:这个是post请求的请求提,把要传给服务器的参数写在这里
正则表达式提取器
提取器作用:从请求的响应结果中取到需要的内容,从而实现关联
要检查的响应字段:正则表达式提取内容的范围
引用名称:其他地方引用提取值的变量名称,具体的引用方式是${变量名},eg:${token}
正则表达式:提取内容的正则表达式,()表示提取,对于要提取的内容需要用小括号括起来
模板:用$$引用起来,如果在正则表达式中有多个提取表达式(多个括号括起来的东西),则可以是$1$,$2$等等,表示解析到的第几个值给变量,正则表达式提取模式,值从1开始
匹配数字:0代表随机,-1代表所有,其余正数代表将在已提取的内容中,第几个匹配的内容
缺省值:正则匹配失败,取的值
响应断言
断言:对取样器返回的请求结果给出判断,是否正确
用户可以使用断言来检查从服务器获得的响应内容,用来判断请求响应的结果是否如用户所期望的
断言会影响作用域内的所有采样器,如果要让断言只影响某个采样器,需要将断言作为该采样器的子项
断言中设置要测试的模式,则会对响应的内容(如http请求后,服务器返回的内容)进行与字符串进行匹配,如果返回的内容包括了字符串,则认为该次测试通过,否则就是失败。一般通过监听器来监听响应断言
关于连接数据库进行数据查询及使用的操作
JDBC Connection Configuration
Database URL:数据库URL,jdbc:MySQL://主机ip或者服务器名称:mysql监听的端口号/数据库名称
JDBC Driver Class:数据库的驱动
username:数据库登录的用户名
password:数据库登录的密码
Variable Name:数据库连接池的名字,需要与JDBC Connection Configuration的连接池的名字保持一致
Query:填写的sql语句末尾不要加“;”
Parameter valus:参数值
Parameter types:参数类型
Variable names:保存sql语句返回结果的变量名
result Variable name:创建一个对象变量,保存所有的结果
监听器
聚合报告:
label:取样器名称
Samples:运行过程中一共发出了多少个请求
Average:平均响应时间
median:响应时间中间值
90%Line:一组数从小到大排列,找到他的第90%个数,那么这个数组中有90%的数将小于这数
Min/Max:最小/最大响应时间
Error%:出错率
Throughput:吞吐量,每秒/每分处理的Request数
KB/sec:每秒从服务器接收到的数据
注意:关于总体值并不是各列的累加,
图形结果:
样本数目:发出去的请求数
最新样本:最近一个Request的响应时间
平均:所有request响应时间的平均值
偏离:所有request响应时间的便准差
吞吐量:单位时间处理request的个数
中值:所有request响应时间的中间值
查看结果树
在连接数据库时可能遇到的问题
1.Cannot load JDBC driver class 'com.mysql.jdbc.Driver,jmeter中的JDBC request报这个错
解决:因为没有JDBC驱动,下载一个mysql-connector-java-5.1.40文件,下载后解压,然后将mysql-connector-java-5.1.40文件中的mysql-connector-java-5.1.40-bin.jar文件配置在测试计划中就好啦