脚本的录制见Jmeter(四)badboy录制Jmeter脚本
1、Test Plan:测试计划,Jmeter测试脚本根节点,名称可以自己定义
(1)用户定义的变量:可以在这里设置用户的全局变量。
(2)独立运行每个线程组:如果一个测试计划中有多个线程组,设置此项可以生效。不设置时每个线程组同时运行。
(3)主线程结束后运行teardown线程组:关闭主线程后运行teardown程序来正常关闭线程组(运行的线程本次迭代完成后关闭)。
(4)函数测试模式:在调试脚本的过程中我们可能需要获取服务器返回的详细信息就可以选择此项,此项记录较多的数据会影响测试效率,所以在执行性能测试时请关闭此项。
(5)添加目录或jar包到ClassPath:把测试需要依赖的jar包或包所在的目录加入类路径。不过还是建议大家把依赖的jar包添加到jmeter的lib目录下。
2、Thread Group:线程组,模拟虚拟用户的发起点,在此可以设置线程数及运行次数或者运行时间,还可以定义调度时间及运行时长
3、HTTP Cookie Manager:再用IE访问Web页面时会记录Cookie信息,Jmeter通过加入HTTP Cookie Manager来自动记录Cookie信息,这里选择默认即可,如下图所示
下面简单介绍几个Cookie策略:
(1)RFC2109:是W3C组织第一次推出的官方Cookies标准。按常规来说为了统一,所有使用Cookies的服务端都应该使用此标准,但实际不是这样,就像我们的移动电话的充电器接口一样,很多厂家都有自己的专用接口,导致充电器不能通用,浪费资源。JMeter默认Cookies协议是RFC2109。
(2)RFC2965:为了弥补RFC2109标准的缺点而生,是升级版本;只为取代RFC2109.Netscape标准
(3)Netscape:是最原始的Cookies规范,是RFC2109的基础,与RFC2109还是有差异的,需要特定服务器才可以兼容。
(4)Compatibility:为了尽可能多地适应不同的服务器而生,显然不能完全按照标准来实现,就好像我们的万能充电器一样,当我们遇到了解析Cookies 的问题,就可以尝试此规范来解决。
(5)Ignore Cookies:忽略所有Cookie,也就是不处理这些Cookie信息了,如果你的服务器有Cookie信息,那么此选项会导致你的脚本回放不成功,一般静态网页才适应;对于动态网页一般都会用到Cookie,比如我们网购时的购物车,所以此选项基本很少用到,如果是测试Http协议的系统建议忽略此选项。
4、User Defined Variables:用户自定义的变量,在此我们可以定义后面元件需要引用的变量并对其进行赋值。jsessionid一般是服务器返回的,每个用户返回的都不一样,所以在此不应该固定这个值,但Badboy 转换的脚本把jsessionid 放到了此元件中,所以我们要把它去除掉。
5、HTTP Header Manager:管理 HTTP头信息,我们可以从中找到诸如User-Agent、Connection、content-type、Accept、Cookie、location302重定向地址等信息。
6、Step1:实际上这是一个循环控制器,我们可以在【逻辑控制器】下找到它。在此我们可以设置循环次数,以我们录制业务为例,一次登录可以多次发送新帖,所以我们把登录(Step1和Step2)的循环次数设置为1,Step3进入板块与发贴的循环次数设置为永远。
7、http://127.0.0.1/jforum/forums/list.page:这是一个HTTP请求元件,我们可以在【Sampler】中找到它
大致介绍一下界面的以下内容
(1)【基本】-协议:我们录制的论坛登录用的是http 协议,所以在此要填入 http。https 是SSL的连接,较htp有较高的安全性,但效率较http低。
(2)【基本】-服务器名称或IP&端口号:指定协议请求的主机地址,端口号为访问地址中的端口号。
(3)【基本】-方法:在下拉列表中我们常用的是 Post 与Get。Get提交请求时会把参数暴露在浏览器地址栏,且长度有限制大约是 1M,Post 提交请求对于表单理论上没有长度限制,用户一般也看不到提交的内容,较get方式安全。
(4)【基本】-路径:除去主机地址部分的访问链接。
(5)【基本】-内容编码:字符编码格式,默认iso8859,不确定时可以向开发团队确认,不妨试一下UTF-8,大多数应用都会指定成UTF-8格式。
(6)【基本】-自动重定向:HttpClient 接收到请求后,如果请求中包含重定向请求,HttpClient是可以自动跳转的,但是只针对Get 与Head 请求,勾选此项则“跟随重定向”失效;自动重定向可以自动转向到最终目标页面,但是JMeter是不记录重定向过程内容的,比如在察看结果树中是无法找到重定向过程内容的(A重定向到B,此时只记录B的内容不记录A的内容,A的响应内容我们暂且叫过程内容),如果此时你要做关联,那就比较遗憾了,你无法关联到。
(7)【基本】-跟随重定向:Http Request取样器的默认选项,当响应Code是3 xx时(比如 301是重定向),自动跳转到目标地址。与自动重定向不同,JMeter 会记录重定向过程中的所有请求响应,在查看结果树时可以看到服务器返回的内容,所以你可以对响应的内容做关联。
(8)【基本】-使用KeepAlive:对应Http响应头中的Connection:Keep-Alive,默认选中。
(9)【基本】-对POST使用multipart/from-data:当发送 HTTP POST请求时,使用multipart/from-data方法发送,比如我们可以用它做文件上传;这个属性是与方法 POST绑定的。
(10)【基本】-与浏览器兼容的头:浏览器兼容模式。
(11)【基本】-(同请求一起发送)参数:可以把要发送的参数(就是表单域)与值填到此域,Get方式也适用。
(12)【基本】-消息体数据:可写“json格式参数”和“urlencoded参数(参数之间用&链接)的方式”,进行参数传递。
(13)【基本】-文件上传:当使用“对POST使用multipart/from-data”时可以在此一同上传文件。MIME类型有STRICT、BROWSER_COMPATIBLE、RFC6532等,如果你不知道你所测试的程序MIME类型,那么可以借助HttpWatch、Fiddler、Wireshark等工具截包获取。
(14)【高级】-超时(毫秒):指定超时时间,单位是毫秒;连接是连接超时时间,响应是响应超时时间。
(15)【高级】-实现:下拉列表中有2个选择项,其中HttpClient4 是 Apache JakartaCommon下的子项目,通过它可以高效地访问 HTTP协议的资源,我们可以把它看成是一个没有界面的浏览器。
(16)【高级】-从HTML文件获取所有内含的资源:解析HTML文件和发送的HTTP/HTTPS请求资源。
(17)【高级】-并行下载.数量:并发检索资源,可以设置并发大小。
(18)【高级】-网址必须匹配:使用正则式来指定检索的URL范围。
(19)【高级】-代理服务器:当我们测试时的网络使用了网络代理就需要在此配置代理服务器。
Jmeter(六)Jmeter脚本界面解析
最新推荐文章于 2024-07-03 19:20:44 发布