关注性能小课,成长不止一点点
1、简介
前一篇我们介绍在免登陆情况下,网络测试计划创建实战,今天我们来介绍在需要登录情况下网络测试计划创建实战教程。
2、网络测试计划创建实战
2.1 需要登录
在cnblogs网站中,如果要对正在浏览的文章执行发布随笔、评论、点推荐等等一系列操作,则需要用户登录验证身份以后,才能执行。本节中,为提高此种场景的模拟效率,特将与需要登录相关的讲解示例,改为以在虚拟机中搭建的的名为Jenkins的Web应用程序来进行,具体的测试操作为“删除一个job”(在Jenkins中,job必须在登录状态下才能删除,如果在非登录状态下执行job删除操作,则会删除失败)。
2.1.1 抓包
2.1.1.1 登录Jenkins
1、在浏览器地址栏中输入Jenkins的地址,然后分别在用户名和密码框中输入账号、密码,点击登录按钮,对Jenkins执行登录操作。如下图所示:
2、借助fiddler抓包工具抓取前一步骤中登录Jenkins的整个过程。从下图红框标注的部分可以看到所抓取到的登录的URL以及发出的登录请求所带的参数。如下图所示:
2.1.1.2 删除
1、继前一节中所执行的登录Jenkins操作后,再在Jenkins中执行一个新建job的操作,并为job起名为test。如下图所示:
2、将前一步骤中新建的job删除。如下图所示:
3、借助fiddler抓包工具抓取前一步骤中删除job的整个过程。从所抓取到的结果中可以看出,传的data参数是Jenkins-Crumb。如下图所示:
4、此时,需要分析Jenkins-Crumb从何而来。因此,要去到上个请求的body中去看个究竟。如下图所示:
2.1.2 通过JMeter模拟登录Jenkins
按照抓包抓取到的参数,接下来用JMeter模拟登录Jenkins。
1、建立一个测试计划命名为:Test Jenkins Plan。如下图所示:
2、选中测试计划,添加线程组用户,命名为:Jenkins User。如下图所示:
小提示:● 本讲解举例为模拟一个用户登录一次,如果要模拟压测,可以设置多个用户同时登录。
3、选中线程组,添加一个HTTP Header Manager(HTTP信息头管理器)。添加该元件的目的是为了避免JMeter发送请求后,返回结果可能会出现状态码为403的错误。如下图所示:
小提示:● 本示例中的HTTP信息头管理器,用以添加User-Agent和Content-Type参数。该参数可根据fiddler抓包工具所抓取到的header来填写。
4、选中线程组,添加一个HTTP Request Defaults(HTTP请求默认值管理器)。该元件用来发送http默认请求值,其中,在Sever Name or IP参数对应的文本框中填写Jenkins的地址。使用该元件的好处是后续每新增加一条http请求,都不再需要重复填写被测网站的地址了。如下图所示:
小提示:● 在虚拟机中所搭建的Jenkins Web应用程序,对应的请求值分别填写如下:
-
(1)Protocol(协议:http or https):目前这个是在虚拟机中搭建的http协议,所以这里填写Protocol:http -
(2)测试地址为:在虚拟机中搭建的,Sever Name or IP:192.168.164.129 -
(3)Port:9090(所搭建测试地址的默认端口为9090,该端口可以在Tomcat的配置文件中进行修改)
5、选中线程组,添加一个HTTP Request元件,将其重命名为:Login。如下图所示:
小提示:● 在虚拟机中所搭建的Jenkins Web应用程序,其Login(登录)的请求值通过查看抓到的登录请求包(2.2.1.1)可知,故此处相关请求值分别填写如下:
-
(1)Protocol(协议:http or https):目前这个是在虚拟机中搭建的http协议,所以这里填写Protocol:http -
(2)测试地址为:在虚拟机中搭建的,Sever Name or IP:192.168.164.129 -
(3)Port:9090(所搭建测试地址的默认端口为9090,该端口可以在Tomcat的配置文件中进行修改) -
(4)Method:是哪种类型的请求,就选择哪种,此处根据实际情况选择POST -
(5)Path:登录的请求路径 -
(6)Content Encoding:在本讲解示例中,编码没有填写,如果出现乱码,可通过填写utf-8和Gb2312来尝试解决。
6、选中线程组,添加一个Cookie管理器,用来管理登录后的cookie。如下图所示:
小提示:● cookie添加值,通过查看抓到的登录请求包可知,故此处添加值分别填写如下:
-
(1)Name:JSESSIONID.a45b9031 -
(2)Value:一串数字和字母 -
(3)Domain:192.168.164.129
7、选中线程组,添加一个查看结果树,将其重命名为:Check Login Results,用以监听登录是否成功。如下图所示:
8、选中线程组,添加一个HTTP Request元件,将其重命名为:Delete Item。如下图所示:
小提示:● 在虚拟机中所搭建的Jenkins Web应用程序,其Delete(删除job)的请求值通过查看抓到的删除请求包(2.2.1.2)可知,故此处相关请求值分别填写如下:
-
(1)Protocol(协议:http or https):目前这个是在虚拟机中搭建的的http协议,所以这里填写Protocol:http -
(2)测试地址为:在虚拟机中搭建的,Sever Name or IP:192.168.164.129 -
(3)Port:9090(所搭建测试地址的默认端口为9090,该端口可以在Tomcat的配置文件中进行修改) -
(4)Method:是哪种类型的请求,就选择哪种,此处根据实际情况选择POST -
(5)Path:删除的请求路径 -
(6)Content Encoding:在本讲解示例中,编码没有填写,如果出现乱码,可通过填写utf-8和Gb2312来尝试解决。
9、选中线程组,再添加一个结果树,将其重命名为:Check Delete Results,用以监听删除job请求是否成功。如下图所示:
2.3运行测试计划查看运行结果
2.3.1 运行免登录的测试计划
1、点击绿色的按钮,运行测试计划,如下图所示:
2、查看测试计划的运行结果,当每个请求的监听结果都是绿色的,说明浏览文章请求成功。如下图所示:
3、如果从如下截图的红框标注内容中,看到博文的内容,则更说明浏览文章请求成功。如下图所示:
2.3.2 运行需要登录的测试计划
1、Jenkins的新建任务里有“test”,如下图所示:
2、点击绿色的按钮,运行测试计划,如下图所示:
3、查看运行结果,如果两个请求的监听结果都是绿色的,说明请求成功。
4、回到Jenkins中,查看新建任务,如果没有看到“test”,也能说明删除已成功,如下图所示:
END
免费技术支持微信:15712862196
咨询QQ:2657535456
咨询微信号:huice666
慧测公众号



