1.简介
上一篇中宏哥已经将其的理论知识介绍了一下,这一篇宏哥就带着你们一步一步的把上一篇介绍的理论知识实践一下,而后再说一下如何建立高级web测试计划。html
2.网络计划实战
经过上一篇的学习,宏哥将其分类为:web
(1)不须要登陆验证身份就能够操做的。apache
(2)须要登陆验证身份以后才能操做的。浏览器
2.1不须要登陆
这里宏哥就拿博客园来举例子,如博客园,你不须要登陆验证身份,就能够执行阅读、查找和浏览博客园内的文章(前提是这些文章没有设置“只容许注册的用户访问”)。缓存
2.1.1抓包
1.阅读博客园文章服务器
一、浏览器上输入博客园地址,点击文章::Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程),以下图所示:cookie

二、fiddler抓包工具抓取博客园查找的过程。从下图红色圈住的部分能够看到查找的URL和请求查找发送的参数。以下图所示:网络

2.1.2阅读文章
按照抓包抓取到的参数,咱们下一步就是用Jmeter模拟阅读博客园文章:Jmeter(三) - 从入门到精通 - 测试计划(Test Plan)的元件(详解教程)。session
1.创建一个测试计划命名为:Test Blog Read Plan。如图下所示:工具

2.选中测试计划,添加线程组用户,命名为:Blog User。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥这个就是一个用户阅读一次,若是要压测你能够设置多个用户同时阅读。

3.选中线程组,添加一个HTTP Header Manager(HTTP信息头管理器)。这个主要是为了不Jmeter发送请求后,返回结果可能会出现状态码为403的错误。以下图所示:
注意:敲脑袋,敲黑板啦!!!这里HTTP信息头管理器,主要添加一个参数User-Agent。根据你抓包的header来填写便可。

4.选中线程组,设置一个http,发送http默认请求值,放入你需求测试的地址。这样作的好处就是后边的全部的http请求你就再也不须要重复的写这个测试地址了。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥本地搭建的Jenkins应用程序,那么测试地址就很清楚了,这里请求值填写以下:
(1)protocol(协议:http or https):目前博客园是https协议,因此这里填写Protocol:https
(2)测试地址为:博客园的地址,不用啰嗦你们都知道了,Sever Name or IP:www.cnblogs.com
(3)Port:(博客园没有端口)

5.选中线程组,添加一个http请求命名为:Read。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥本地搭建的Jenkins应用程序,那么Read请求值,咱们查看抓到登陆请求包(2.2.1)就很清楚了,这里请求值填写以下:
(1)protocol(协议:http or https):目前这个是本地搭建的http协议,因此这里填写Protocol:https
(2)测试地址为:本地搭建,不用啰嗦你们都知道了,Sever Name or IP:www.cnblogs.com
(3)Port:(博客园没有端口)
(4)Method:是那种类型的请求就选择那种,这里选择get
(5)Path:阅读博客园文章的请求路径
(6)Content Encoding:编码宏哥这里没有填写,若是出现乱码,你能够填写utf-8和Gb2312试一下,便可。

6.选中线程组,添加一个结果树,命名为:Check Read Results,监听阅读博文是否成功。以下图所示:

2.2须要登陆
一样的这里也拿博客园举例子,你若是要发布随笔、评论、点推荐等等的一系列操做,就须要你登陆验证身份之后才能执行这些操做。可是因为博客园的登陆机制改变宏哥就不拿博客园举例子,宏哥拿一个,宏哥在本地搭建的Jenkins的web应用程序来实战一下,删除一个job。可是这个job必须在登陆之后才能删除,若是没有登陆就会删除失败。
2.2.1抓包
1.登陆
一、浏览器上登陆jenkins,输入帐号和密码,点击登陆。以下图所示:

二、fiddler抓包工具抓取jenkins登陆的过程。从下图红色圈住的部分能够看到登陆的URL和请求登陆发送的参数。以下图所示:

2.删除
一、咱们前面讲过登陆后新建任务后,那能够继续接着操做:删除刚才新建的任务。以下图所示:

二、用fiddler抓包,抓到删除新建任务的请求,从抓包结果能够看出,传的data参数是Jenkins-Crumb。以下图所示:

3.这个Jenkins-Crumb哪里来的呢?能够看上个请求的body。以下图所示:

2.2.2登陆
按照抓包抓取到的参数,咱们下一步就是用Jmeter模拟登陆到Jenkins。
1.创建一个测试计划命名为:Test Jenkins Plan。以下图所示:

2.选中测试计划,添加线程组用户,命名为:Jenkins User。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥这个就是一个用户登陆一次,若是要压测你能够设置多个用户同时登陆。

3.选中线程组,添加一个HTTP Header Manager(HTTP信息头管理器)。这个主要是为了不Jmeter发送请求后,返回结果可能会出现状态码为403的错误。以下图所示:
注意:敲脑袋,敲黑板啦!!!这里HTTP信息头管理器,主要添加两个参数User-Agent和Content-Type。根据你抓包的header来填写便可。

4.选中线程组,设置一个http,发送http默认请求值,放入你需求测试的地址。这样作的好处就是后边的全部的http请求你就再也不须要重复的写这个测试地址了。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥本地搭建的Jenkins应用程序,那么测试地址就很清楚了,这里请求值填写以下:
(1)protocol(协议:http or https):目前这个是本地搭建的http协议,因此这里填写Protocol:http
(2)测试地址为:本地搭建,不用啰嗦你们都知道了,Sever Name or IP:localhost
(3)Port:8080(这里宏哥搭建的默认端口8080,你也能够在Tomcat的配置文件修改这个端口)

5.选中线程组,添加一个http请求命名为:Login。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥本地搭建的Jenkins应用程序,那么Login请求值,咱们查看抓到登陆请求包(2.2.1)就很清楚了,这里请求值填写以下:
(1)protocol(协议:http or https):目前这个是本地搭建的http协议,因此这里填写Protocol:http
(2)测试地址为:本地搭建,不用啰嗦你们都知道了,Sever Name or IP:localhost
(3)Port:8080(这里宏哥搭建的默认端口8080,你也能够在Tomcat的配置文件修改这个端口)
(4)Method:是那种类型的请求就选择那种,这里选择post
(5)Path:登陆的请求路径
(6)Content Encoding:编码宏哥这里没有填写,若是出现乱码,你能够填写utf-8和Gb2312试一下,便可。

6.选中线程组,添加一个cookie管理器,用来管理登陆后的cookie。以下图所示:
注意:敲脑袋,敲黑板啦!!!cookie的添加一个值,这个也能够在抓包登录请求中header查看到,这里宏哥就不细说了。
(1)Name:JSESSIONID
(2)Value:一串数字和字母
(3)Domain:localhost

7.选中线程组,添加一个结果树,命名为:Check Login Results,监听登陆是否成功。以下图所示:

8.选中线程组,添加一个http请求命名为:Delete Item。以下图所示:
注意:敲脑袋,敲黑板啦!!!宏哥本地搭建的Jenkins应用程序,那么Delete请求值,咱们查看抓到删除请求包(2.2.1)就很清楚了,这里请求值填写以下:
(1)protocol(协议:http or https):目前这个是本地搭建的http协议,因此这里填写Protocol:http
(2)测试地址为:本地搭建,不用啰嗦你们都知道了,Sever Name or IP:localhost
(3)Port:8080(这里宏哥搭建的默认端口8080,你也能够在Tomcat的配置文件修改这个端口)
(4)Method:是那种类型的请求就选择那种,这里选择post
(5)Path:删除的请求路径
(6)Content Encoding:编码宏哥这里没有填写,若是出现乱码,你能够填写utf-8和Gb2312试一下,便可。

9.选中线程组,添加一个结果树,命名为:Check Delete Results,监听删除job是否成功。以下图所示:

2.3JMeter运行查看运行结果
2.3.1不须要登陆
一、点击绿色的按钮,运行Jmeter,以下图所示:

二、查看JMeter运行结果,一个请求的监听结果都是绿色的,说明请求成功。以下图所示:

(1)查看阅读是否成功,从结果看到博文内容,说明阅读成功。以下图所示:

2.3.2登陆
一、Jenkins的新建任务里有“北京-宏哥”,以下图所示:

二、点击绿色的按钮,运行Jmeter,以下图所示:

三、查看JMeter运行结果,两个请求的监听结果都是绿色的,说明请求成功。以下图所示:

(1)查看登陆是否成功,从结果看到“admin”和“注销”,说明登陆成功。以下图所示:

(2)能够看到登陆成功后的,任务中有“北京-宏哥”。以下图所示:

(3)查看删除是否成功,从结果中没有看到“北京-宏哥”,说明删除成功。以下图所示:

四、查看Jenkins的新建任务,没有看到“北京-宏哥”,说明删除成功了,以下图所示:

3.制定高级Web测试计划