一.Test Plan 和 Thread Group 参数解析
1.Test Plan
1.1Test Plan:
(测试计划名称:被压测的功能或接口名称)
1.2.用户定义的变量:
用户添加的变量,相当于全局变量,所有线程组都共用,一般添加一些系统常用的配置,也可以使用用户定义得变量来替代,如下图:
1.3.独立运行每个线程组: (例如在一个组运行结束后启动下一个)
默认:不勾选,默认各线程组并行、随机执行
作用:勾选后,用于控制测试计划中的多个线程组的执行顺序,保证顺序执行各线程组
1.4.函数测试模式
勾选后,如果监听器(如:查看结果树)配置了保存到一个文件中(如下图),那么jmeter会将每次的请求结果保存到文件中;在负载测试中不建议勾选,平时调试脚本情况下可以勾选
1.5.添加目录或jar包到classpath
当BeanShell脚本需要调用外部的java文件或jar包时,可以把jar包路径添加到这里,然后在BeanShell中直接import进来,并调用jar包中的方法
2.Thread Group
2.1线程组
名称:具有测试意义的名字
2.2在取样器错误后要执行得动作
**a.Contiune:**继续。某一个请求遇到错误后,其他请求继续执行。我们在大量用户并发的时候,某个请求失败属正常现象
**b.Start Next Thread Loop:**如遇到错误后面的请求将不再执行,等下一轮再开始执行。例如线程组中包含登录和发帖2个请求,若登录请求失败,发帖请求将不再执行,等下一次重新迭代,从登录开始执行。
**c.Stop Thread:**遇到错误就停止线程再也不执行了。例如线程组中有50个线程,其中某一个线程的某个请求遇到错误即停止线程不再执行,剩下49个线程继续执行。若线程错误的比较多,剩余的线程就较少,此时负载数量就不足了,测试结果不满足测试要求,因此一般不会勾选此项。
**d.Stop Test:**某个线程某个请求遇到错误,停止所有线程,也就是停止整个测试,但是线程中的余下的请求还是会执行完再停止。例如线程1中包含登录和发帖2个请求,其他线程遇到错误,现在要全部停下来,线程1发帖请求还是会执行,然后再停止测试。
**e.Stop Test Now:**遇到错误立即停止所有线程,即整个测试。
2.3线程属性
**a.Number of Threads(users) *线程数,一个线程相当于一个虚拟用户;
**b.Ramp-Up Period(in second):**线程启动开始运行的时间间隔,单位秒。即所有线程在多长时间内全部启动。例如线程60个,Ramp-Up Period设置为20s,那么每秒启动60/20=3个线程,不填写默认设置为0,即所有线程在开启场景后立即启动。
**c.Loop Count:**循环次数。勾选forever,将一直执行,除非手动停止或崩溃
**d.Delay Thread creation until needed:**延时创建线程直到该线程需要采样时。
勾选,例如50个线程Ramp-Up Period为10s,那么每隔1s启动50/10=5个线程并运行下面的请求(状态为running);不勾选,测试计划开始后启动所有线程(状态为new),但是不立即执行下面的请求。例如50个线程Ramp-Up Period为10s,那么计划开始后所有线程全部就绪,但第一秒只有5个线程开始运行请求。实际应用中选择哪种都可以,不影响测试结果。
2.4Scheduler:调度器
**a.Duration(seconds):**持续时间,测试计划持续多长时间。
**b.Startup delay(seconds)*启动延时。点击启动按钮后,仅初始化场景,不运行线程,等待延时时间到才运行。
二.创建测试计划
1.如果已有保存得测试文件,即.jmx文件时,可以直接打开用来测试
2.创建线程组
在“测试计划”上右键 【添加】–>【Threads(Users)】–>【线程组】;
3.配置元件
**1.添加Http请求:**在线程组上右键 【添加】–>【配置元件】–>【HTTP请求】,填写好请求参数;
**2.添加HTTP信息头管理器:**在线程组上右键【添加】–>【配置元件】–>【HTTP信息头管理器】,非必需
**3.添加断言:**在线程组上右键【添加】–>【断言】–>【响应断言】;
**4.添加察看结果树 :**在线程组上右键 【添加】–>【监听器】–>【察看结果树】;
**5.添加Summary Report:**在线程组上右键【添加】–>【监听器】–>【Summary Report】;
所有配置都添加好后保存测试计划
三执行测试计划
jmeter -n -t D:\yace\TestSystem.jmx -l D:\yace\result\result.txt -e -o D:\yace\result\webreport
测试计划文件路径 - 测试结果文件路径 - web报告保存路径