JMeter(连载2)

3 JMeter主要组件介绍。

接下来就可以用JMeter修改录制和脚本了,在修改之前,介绍一下一些最基本的组件功能。由于JMeter功能非常强大并且支持很多控件,所以介绍所有的组件是不可能的。

1.测试计划

jmx文件是一个树形结构,这棵树的根节点就是测试计划,如图10所示。

图10 测试计划

这里的名称为测试计划的名称,注释为对这个测试计划的详细注解。JMeter所有的组件都有这两个选项,下面不再进行介绍。在这里简单地介绍一下下面几个选项。

l 独立运行每个线程组(例如在一个线程组远行完毕运行下一个):通常不选择,表示多个线程组全部一起运行。

l 主线程结束后运行teardown线程组:关闭主线程后运行 teardown程序来关闭线程组,一般不选择。

l 函数测试模式:可以获得更多服务器返回信息,一般不选择。

l 添加目录或jar包到classpath:不建议在这里添加,如果有必要可以放在%JMeter_HOME\lib%目录下。

2. 线程组

线程组通过菜单“Add->Threads(Users) -> Threads Group”添加。如图11所示。

图11 线程组

l 线程数:表示一次测试运行启动多少个线程。作为性能测试的时候,相当于在线用户数;在做接口测试的时候,请设置为1。

l Ramp-Up时间(秒):决定多长时间启动所有线程。如果使用10个线程,ramp-upperiod是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-Up需要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。一般设置ramp-up=线程数启动,并上下调整到所需的。

l 循环次数:设置循环的次数或者无限循环。所以在做接口测试的时候,请设置为1。

l 如果循环计数不是-1(随机)或永久,则持续时间将为min(持续时间,循环计数*迭代持续时间)

HTTP Cookie 管理如图12所示。通过菜单“Add-> Config Element -> HTTP Cookie Manager”添加。

图12 HTTP Cookie

每次反复清除cookies:每次线程执行完就会清除cookies。

Cookie 策略,管理cookies的策略,详细请查看官网介绍:http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/cookie/CookiePolicy.html。一般情况下请设置为standard。

l 添加:添加cookie项。包括名、值、域、路径以及是否安全,其中名与值为必填项,其他为选填项。

l 删除:删除当前所选的cookie项。

l 载入:可以引入浏览器保存下来的Cookie,一般为txt文件。

4. 正则表达式提取器

有时候需要从返回内容中提取相关的信息作为验证或者作为参数,以便进行下一步操作。这时需要使用“正则表达式提取器”如图13所示。通过菜单“Add->PostProcessors->Regular Expression Extractor”。

图13 Regular Expression Extractor

l Name of created variable:通过正则表达式提取后获得参数的变量名。

l Regular Expression:正则表达式。

l Template($i$ where i is capturing group number, start at 1:模板吗,格式为$i$,其中i表示从1开始的计数器,如果获得一个参数标记为$1$,两个参数标记为$2$...。

l Match No. (0 for Random) :由于满足正则表达式条件的个数可能不止一个,这里指定匹配多少个:0表示从匹配的的个数中随机挑选;-1表示获取所有的;n(n>0)表示匹配第n个(如果匹配的数目小于n,则报错)。

l Default Value:如果没有匹配到的缺省值,便于调试。

5. 循环控制器

循环控制器在性能测试中,类似于LoadRunner定义了一个迭代。在做性能测试的时候参数Loop Count选择Forever,而在做接口测试的时候选择1。如图14所示。通过菜单“Add->Logic->Loop Controller”添加。

图14 循环控制器

6. HTTP Request

HTTP Request是一个关键的组件,它定义了HTTP Request请求的信息。如图15所示。通过菜单“Add->Samples->HTTP Request”添加。

图15 HTTP request

l 在Web Server选项框中,protocol默认为http协议,当然也可以选择https协议。Server Name or IP中输入待测产品所在的域名或者IP地址。Protocol Number为服务器运行的端口号。

l 在HTTP Request选项框中,Method中选择HTTP的九个方法中的任意一个,一般情况下,多为POST或者GET方法。Path为请求的路径,如果请求为根目录,路径为“/”。Content encoding为编码格式,默认情况为默认ios8859,但是建议使用utf-8。

l Redirect automatically:不会将重定向视为单独的请求。

l Follow redirects:会将每个重定向视为单独的请求。

一般而言如果产品程序中有类似于JavaScript语言中window.location.href="url"的重定向语句用Follow redirects,否则一般情况下都使用Redirect automatically。

l Use Keepalive:表示使用面向连接的请求,也就是说在请求头中包含keep-alive。

l multipart/form-data:表示以multipart/form-data发出请求,也就是说除了可以使用键值对发送请求外,还可以发送文件。

l browser-compatible headers:表示浏览器兼容请求头。

下面就是所要传输的参数,分别填写请求的名称,值及其他信息。

星云测试

http://www.teststars.cc

奇林软件

http://www.kylinpet.com

联合通测

http://www.quicktesting.net

本文分享自微信公众号 - 软件测试培训(iTestTrain),作者:顾翔

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JMeter(连载3)

    这个组件用于测试流程的参数化,参数化文件采用类似于CSV文件。如图16所示。通过菜单“Add->Config Element->CSVData Set Conf...

    小老鼠
  • JMeter(连载4)

    在Debug Sample中可以查看测试产生数据的值。通过菜单“Add->Sample->Debug Sample”添加。如图19所示。

    小老鼠
  • Jmeter之接口测试使用流程

      采样器:较常用HTTP请求、JDBC Request、SOAP/XML -RPC RRequest

    小老鼠
  • Java concurrency in practice笔记 02 03

    线程安全性的核心是正确性,正确性的含义是如果类的行为与其规范完全一致。因此当多个线程访问某个类时,类的行为始终是安全的,这个类就是线程安全的,...

    Dylan Liu
  • Java多线程之细说线程池

    前言   在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题:    如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就...

    用户1195962
  • java 线程池简介

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    DencyCheng
  • Linux并发(多线程协作)

    一个程序里的线程数,就像一家公司里的员工数一样,太少了忙不过来,太多了入不敷出。因此我们需要有更好的机制来协调它们。

    用户2617681
  • 五种线程池的对比与使用

    通过源码可以看出底层调用的是ThreadPoolExecutor方法,传入一个同步的阻塞队列实现缓存。

    爱撸猫的杰
  • ThreadLocal垮线程池传递数据解决方案:TransmittableThreadLocal【享学Java】

    在 上篇文章 了解到了,ThreadLocal它并不能解决线程安全问题,它旨在用于传递数据。但是它能成功传递数据比如有个大前提:放数据和取数据的操作必须是处于相...

    BAT的乌托邦
  • Java线程池原理与源码详细解读,再也不怕面试问线程池了!

    “线程池”,顾名思义就是一个线程缓存,线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此Java中提供线程池对线程进行统一分配、...

    程序员追风

扫码关注云+社区

领取腾讯云代金券