美文网首页
Jmeter压力测试

Jmeter压力测试

作者: e622a61aee8e | 来源:发表于2017-08-04 10:39 被阅读0次

Jmeter录制脚本

一、配置录制脚本环境

1.在WorkBench上右键AddàNon-Test ElementsàHTTP(S) Test Script Recorder

Ps:WorkBench相当于编写脚本的平台,用于录制脚本和调试一些参数,真正测试的脚本的时候不会运行。

HTTP(S) Test Script Recorder是代理,他的作用是让本机的所有请求从这里经过。

HTTP(S) Test Script Recorder设置

Global Settings下的Port是代理用的端口号,跟后面浏览器要设置的代理端口号保持一致。

点击Requests Filtering选项卡àURL Patterns to ExcludeàAdd SuggestedExcludes

会看到(?i).*\.(bmp|css|js|gif|ico|jpe?g|png|swf|woff|woff2)这行,里面是过滤请求中的带有这行字的请求,用“|”隔开

2.在WorkBench上右键AddàLogic ControlleràTransactionController

添加事务控制器

3.在Transaction Controller上右键AddàLogic ControlleràRecordingController

Recording Controller用来记录http请求

4.打开谷歌浏览器设置搜索代理

至此录制脚本的环境已经配置完成

二、录制脚本

1.切换到HTTP(S) Test Script Recorder代理点击Start,出来的提示不用管

2.打开谷歌浏览器,输入要测试的网址

下面是jsjytest.open.ha.cn登录的所有请求

停止HTTP(S) Test Script Recorder代理

3.在Test Plan上右键AddàThreads(Users)àThread Group

添加线程组

这里几个重要参数

Number of Threads(users):表示这个线程组模拟模仿多少个并发线程同时请求

,也可以说模拟多少个用户同时操作

Ramp-Up Period(in seconds):表示在多少秒启动完这上面那么多个线程(用户)

Loop Count:forever表示永久不停止线程,填数字表示每个线程(用户)发起多少次请求,然后停止线程

Action to be taken after a Sampler error:表示如果请求失败要执行的操作

4.在Thread Group右键AddàListeneràSummary Report、View Results Tree,将WorkBench里面录制的请求复制到Thread

Group下,脚本基本就录制好了,保存

5.如果录制的请求有用到Cookie(一般post请求和),还要添加HTTP Cookie Manager,在Thread Group右键AddàConfig ElementàHTTP Cookie Manager

HTTP Cookie Manager会在登录时记录Cookie,下面请求如果用到Cookie,HTTP Cookie Manager就会给请求提供cookie data。

HTTP Cookie Manager设置

应用使用的cookies符合兼容性规范的话,JMeter的标准cookies是可以自动管理的.

如果应用没有指明cookies版本,同时又使用了特殊符号,JMeter调用的httpclient就不能正确管理这种非标cookies了.(从应用的cookies兼容性来说是有问题的.)

不考虑应用的兼容性问题的话,需要让JMeter能准确管理这样的cookies,就要改写标准cookies的SPEC或者写一个定制的也可以,改写的目标可以定位在commons httpclient.

以下是网上搜索的关于httpclient支持的cookies说明:

以下Cookies标准,HttpClient3.1可以支持。

RFC2109

RFC2109是W3C组织第一次推出的官方Cookies标准。理论上,所有使用版本1Cookies的服务端都应该使用此标准。HttpClient已经将此标准设定为默认。

遗憾的是,许多服务端不正确的实现了标准或者仍然使用Netscape标准。所有有时感到此标准太多于严格。

RFC2109是HttpClient使用的默认Cookies协议。

RFC2965

RFC2965定义了版本2并且尝试去弥补在版本1中Cookie的RFC2109标准的缺点。RFC2965是,并规定RFC2965最终取代RFC2109.

发送RFC2965标准Cookies的服务端,将会使用Set-Cookie2 header添加到Set-Cookie Header信心中,RFC2965 Cookies是区分端口的。

Netscape标准

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

Browser Compatibility

这种兼容性设计要求是适应尽可能多的不同的服务器,尽管不是完全按照标准来实现的。如果你遇到了解析Cookies的问题,你就可能要用到这一个规范。

有太多的web站点是用CGI脚本去实现的,而导致只有将所有的Cookies都放入Request header才可以正常的工作。这种情况下最好设置http.protocol.single-cookie-header参数为true。

Ignore Cookies

此规格忽略所有Cookie。被用来防止HttpClient接受和发送的Cookie。

Jsjy.open.ha.cn的Cookie是Netscape标准,所以Cookie Policy选择Netscape

Summary Report各项参数含义和计算公式参照下面连接:

http://blog.sina.com.cn/s/blog_68681bdc0102xfaw.html

相关文章

网友评论

      本文标题:Jmeter压力测试

      本文链接:https://www.haomeiwen.com/subject/gklvlxtx.html