最近学习了Jmeter的简单操做,很想找点东西来实战一下,由于我以前写过一篇经过Python模拟登陆的文章,因而便想尝试下学习经过Jmeter来模拟登陆。html
本人环境:Jmeter5.1.1git
关于Github登陆的过程,在这里就不详细说了,有兴趣的能够看我以前的文章: 利用Python模拟GitHub登陆 。github
经过Jmeter模拟Github登陆的全部设置以下:正则表达式
首先,咱们须要建立1个测试计划(至关于测试项目),测试计划下建立1个线程组(至关于测试场景),而后在线程组下设置请求头(线程组->添加->配置元件->HTTP信息头管理器),设置以下:cookie
在以前的Python文章中,我是设置Session会话对象来帮助自动保存cookies信息的,那么在Jmeter中,咱们也能够设置HTTP Cookies管理器来自动保存cookies。学习
为了达到自动管理Cookies的需求,在设置Cookies管理器以前,咱们须要在Jmeter安装路径下bin目录中的 jmeter.properties 文件中定义属性:CookieManager.save.cookies=true。测试
接着,在Jmeter中设置Cookies管理器,(线程组->添加->配置元件->HTTP Cookies管理器),添加后不须要填写内容,它会自动管理cookies。编码
首先,设置1个HTTP请求(线程组->添加->取样器->HTTP请求),在HTTP请求下依次设置 正则表达式提取器和调试后置处理程序 。其中,正则表达式提取器用于提取authenticity_token,而调试后置处理程序,用于查看提取的结果。最后,设置以下:线程
在上面的设置中,咱们的访问 https://github.com/login ,而后返回的HTML界面中存在2个authenticity_token,所以经过正则返回的是一个长度为2的列表,而GitHub在登陆时用到的是列表中的第二个元素,所以设置参数匹配数字(0表明随机)的值为2。调试
相似第二步,设置1个HTTP请求,并在HTTP请求下依次设置 正则表达式提取器和调试后置处理程序 ,这里登陆的请求方式为POST,最后设置以下:
在这里,相似以前的Python文章中,添加POST登陆过程当中所需的参数,而authenticity_token的值,咱们能够经过 ${authenticity_token} 来引用第二步骤中经过正则提取到的authenticity_token。
注意:在这里,authenticity_token须要勾选编码,若是不勾选的话,有时候可能会出现登陆失败,这里我暂时还不明确具体缘由,有大佬清楚的话烦请留言指导一下。
接下来,在HTTP请求下设置断言来判断是否登陆成功(HTTP请求->添加->取样器->HTTP请求)。GitHub登陆成功后,界面的标题会显示"GitHub",而登陆失败时,通常显示的标题则是"Sign in to GitHub · GitHub"。所以,咱们能够设置响应断言以下:
在这里,咱们对第三步骤中正则提取的 title 进行断言,当 title 变量的内容 和GitHub彻底相等时,断言成功,不然失败。
最后,为了方便查看运行后的结果,咱们能够设置监听器,如图形结果、察看结果树、聚合报告等。如下是我本次设置的察看结果树(线程组->添加->监听器->察看结果树),经过它,咱们能够查看线程组中各请求的具体响应过程。
OK,以上就是经过Jmeter模拟GitHub登陆的过程,其实大体思路和利用Python来模拟相同,用Jmeter来模拟登陆,好处就是不须要写代码也能够实践,相信大多数人阅读后都应该能够进行实践。
若有错误,欢迎指出!