四:建立高级web测试计划

Posted 微微微笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四:建立高级web测试计划相关的知识,希望对你有一定的参考价值。

 

发送带有Header的请求

参考:http://jmeter.apache.org/usermanual/build-adv-web-test-plan.html#header_manager

Jmeter里面管理发送的请求的header使用 HTTP Header Manager。使用它可以添加或重写各种header属性,比如"User-Agent", "Pragma", "Referer"等等。

添加HTTP Header Manager方法: Add –> Config Element –> HTTP Header Manager

可以直接放到Thread Group,这样就作用于线程组里面的所有请求。也可以放到某个请求下,这样就只作用于当前请求。

image

添加之后运行测试计划,可以看到发送的请求有两个Connection,一个是系统自动添加的,一个就是通过HTTP Header Manager添加的请求header。

image

 

发送带有cookie的请求

参考:http://jmeter.apache.org/usermanual/build-web-test-plan.html#adding_cookie_support

几乎所有的Web测试都需要使用Cookie 支持,除非被测试项目不使用cookie。

想要使用Cookie 支持,这里我们只需要给每个Thread Group 添加一个 HTTP Cookie Manager 。这样就确保了每个Thread 都会获取到属于它自己的cookie,同时可以在所有的 HTTP Request 之间共享。

在Thread Group上 右键,Add -> Config Element -> HTTP Cookie Manager 。

HTTP Cookie Manager会像浏览器一样自动存储和发送cookie。如果 HTTP 请求的Response中包含cookie,Cookie Manager 会自动储存cookie并且在未来对该网站的访问中使用这些cookie的值。每个用户有自己独立的cookie存储区,所以不会互相干扰。这种自动存储的 cookie 在 Cookie Manager 中看不到,但是可以在 View Result Tree中看到。

cookie值也可以被存储到jmeter线程变量中。如果想保存cookie为变量,需要在jmeter.properties中定义属性“CookieManager.save.cookies=true”。这样假设一个cookie的名字是TEST,我们就可以使用${COOKIE_TEST}来引用它,jmeter默认会在cookie变量前面加一个前缀COOKIE,也可以使用属性 "CookieManager.name.prefix= "来自定义前缀。

image

如果想手动添加一些cookie,可以直接在User-Defined-Cookies里面添加。这样这些cookie会被所有线程共享使用。

添加cookie之后,执行,然后就可以在 View Results Tree的request中看到发送的cookie。

image

需要注意的是,Jmeter不提倡使用多个Cookie Manager 。如果使用多个Cookie Manager 的话,jmeter无法确定哪一个会被使用。

以上是关于四:建立高级web测试计划的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)

jmeter 建立一个扩展LDAP测试计划

Jmeter建立一个扩展LDAP测试计划

Jmeter - 从入门到精通 - 创建网络测试计划(详解教程)某大厂高级测开

《高级软件测试》web测试实践--12月30日记录

jmeter 构建一个Web测试计划