Jmeter(一)常用组件说明

1.常用组件说明

1.1HTTP请求默认值

服务器名或IP ${ip}引用自定义变量中用户定义的ip
端口号 设置端口号(被测试应用或服务IP的端口号)
Connect 设置连接超时时间(单位毫秒)
Respones 设置响应超时时间(单位毫秒)
协议 协议类型,如HTTP
Content encoding 设置HTTP请求编码格式

 

 

 

1.2用户定义的变量

名称 设置自定义变量的名称。在用例中使用${名称}调用。注意:该组件定义的变量是全局变量
变量对应的值
Descriiption 描述这个变量

 

1.3用户参数

 

 "用户参数"组件,常用于线程组对整个线程租生效,比"用户定义的变量"多一个"每次迭代更新一次"的功能,可以配合线程组做循环取值

 1.4固定定时器

 

 

 主要的作用是设置等待时间和延迟。根据其放置的位置不同而作用也不同,放在全局控制区域对对整个工程生效,放在线程控制区域对个别线程生效

放在用例控制级别对用例生效

1.5HTTP Cookie管理器

每次反复清除Cookies 是否每次迭代清除Cookies
Cookies Policy Cookies实现策略。包含standard、default、compatibility等不同策略

 

 

 

 

HTTP Cookie管理器自动管理Cookie,像浏览器一样存储发送Cookie.

HTTP Cookie管理器的作用域:放在测试计划下对下面整个测试计划都有效,放在线程组中对特定线程组有效,放在简单控制器或事务控制器中

              只对当前简单控制器或者当前事务控制器有效

典型问题:1.如果线程组中设置了Cookie管理器,测试计划中设置的Cookie管理器任会对线程组中有效,这是因该禁用测试计划中的Cookie管理器,线程组中的才会有效

     2.每次反复清除Cookies?:选择后,则每次线程组运行时,都会清除 cookie。(若是手动添加的cookie,则不会被清除)

     3.Cookie Policy:Cookie的管理策略

        compatibility:推荐选择此种策略。这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析 Cookies 的问题,

              你就可能要用到这一个规范。有太多的web站点是用CGI脚本去实现的,而导致只有将所有的 Cookies 都放入 Request header 才可以正常的工作。

              这种情况下最好设置 http.protocol.single-cookie-header 参数为 true。

        rfc2109:是HttpClient使用的默认Cookies协议。

        rfc2965:定义了版本2并且尝试去弥补在版本1中 Cookie 的 RFC2109 标准的缺点。规定 RFC2965 最终取代 RFC2109 发送 RFC2965 标准 Cookies 的服务端,

            将会使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,RFC2965 Cookies 是区分端口的。 ignorecookies:此规格忽略所有 Cookie。被用来防止 HttpClient 接受和发送的 Cookie。

        netscape:是最原始的 Cookies 规范,同时也是 RFC2109 的基础。尽管如此,还是在很多重要的方面与 RFC2109 不同,可能需要特定服务器才可以兼容。

        default:默认

 1.6简单控制器

    主要作用是将用例集进行划分。把相同应用的用例放在一起,选择使用简单控制器在运行脚本的时候不会单独生成一条巡行记录,起到了很好的脚本结构划分作用

 1.7事务控制器

    事务控制器会产生一个额外的取样器(sampler)用来计算衡量它所包含的测试组件(比如一个提交订单的接口会有多个http接口)的总体时间。在查看"查看结果树"

    中,事务管理器只有在其子采样器都成功的情况下才会显示成功

 1.8HTTP信息头管理器

 

 

 HTTP消息头管理器。Jmeter中每条用例都是发送请求,需要添加消息头,在这里设置,放在用例内部

1.9响应断言

Apply to 关于应用范围,我们大多数勾选“main sample only” 就足够了,因为我们一个请求,实质上只有一个请求。但是当我们发一个请求时,可以触发多个服务器请求,就有main sample  和 sub-sample之分了。
要测试的响应字段 响应文本、响应代码、响应信息、url样本等
模式匹配规则 包括、匹配、Equals、Substring、否、或者(勾选“包括”,意味着只要相应数据中包含要校验的字段,任务就算成功)
要测试的模式 即需要校验的数据值(期望结果)

 

 

 2.0 CSV Data Set Config

Filename 外部导入文件地址
File encoding 文件编码格式
Delimiter 分隔符
Allow qutoted data 是否允许引用符。注意:CSV中包括引号,逗号等分隔符,该值应该设置成true
Recycle on EOF 设置为true后,允许循环取
Stop Thread on EOF 当Recycle on EOF为false 并且Stop Thread on EOF为true,则读完csv文件的记录后,停止运行
Sharing Mode 设置是否线程共享

 

 

 CSV Data Set Config实现读取外部CSV文件数据,作为参数变量传入。当 Recycle on EOF 选择false时,Stop thread on EOF 选择true,线程4个,参数3个,那么只会请求3次。

当Recycle on EOF选择false时,Stop thread on EOF选择false,线程4个,参数3个,那么请求4次,但是第4次没有参数可取,不让循环,所以第4次请求错误。

2.1聚合报告

Label:请求的名称,就是我们在进行测试的httprequest sampler的名称

Samples:总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10*10 =100次;

Average:默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,以Transaction 为单位显示平均响应时间 ,单位是毫秒

Median: 50%用户的请求的响应时间,中位数

90%Line:90%的请求的响应时间

95%Line:95%的请求的响应时间

99%Line:99%的请求的响应时间

Min:最小的响应时间

Max:最大的响应时间

Error%:错误率=错误的请求的数量/请求的总数

Throughput: 默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数 

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

科普:

90% Line 参数正确的含义: 

90% Line - 90% of the samples took no more than this time. The remaining samples at least as long as this. 

“ 90% 的样品没有超过这个时间,剩余的样品至少只要这个。”

没太理解是什么意思,于是,点击详细解释。 

90% Line (90 th Percentile) is the value below which 90% of the samples fall. The remaining samples too at least as long as the value. This is a standard statistical measure. See, for example: Percentile entry at Wikipedia.  

英语太差,还是没理解到底啥意思,不过最后提示我,用维基百科查一下什么是百分位数。 

百分位数: 

统计学术语,如果将一组数据从大到小排序,并计算相应的累计百分位,则某一百分位所对应数据的值就称为这一百分位的百分位数。可表示为:一组n个观测值按数值大小排列如,处于p%位置的值称第p百分位数。

90% Line 

一组数由小到大进行排列,找到他的第90%个数(假如是12),那么这个数组中有90%的数将小于等于12 。 

用在性能测试的响应时间也将非常有意义,也就是90%请求响应时间不会超过12 秒。

posted @ 2019-09-26 18:35  Chensh丶  阅读(274)  评论(0)    收藏  举报