最近学习了Jmeter的简单操作,很想找点东西来实战一下,因为我之前写过一篇通过Python模拟登录的文章,于是便想尝试下学习通过Jmeter来模拟登录。

本人环境:Jmeter5.1.1

关于Github登录的过程,在这里就不详细说了,有兴趣的可以看我之前的文章: 利用Python模拟GitHub登录

通过Jmeter模拟Github登录的所有设置如下:

1. Jmeter设置请求头和Cookies管理器

首先,我们需要创建1个测试计划(相当于测试项目),测试计划下创建1个线程组(相当于测试场景),然后在线程组下设置请求头(线程组->添加->配置元件->HTTP信息头管理器),设置如下:

在之前的Python文章中,我是设置Session会话对象来帮助自动保存cookies信息的,那么在Jmeter中,我们也可以设置HTTP Cookies管理器来自动保存cookies。

为了达到自动管理Cookies的需求,在设置Cookies管理器之前,我们需要在Jmeter安装路径下bin目录中的 jmeter.properties 文件中定义属性:CookieManager.save.cookies=true。

接着,在Jmeter中设置Cookies管理器,(线程组->添加->配置元件->HTTP Cookies管理器),添加后不需要填写内容,它会自动管理cookies。

2. 获取authenticity_token

首先,设置1个HTTP请求(线程组->添加->取样器->HTTP请求),在HTTP请求下依次设置 正则表达式提取器和调试后置处理程序 。其中,正则表达式提取器用于提取authenticity_token,而调试后置处理程序,用于查看提取的结果。最后,设置如下:

在上面的设置中,我们的访问 https://github.com/login ,然后返回的HTML界面中存在2个authenticity_token,因此通过正则返回的是一个长度为2的列表,而GitHub在登录时用到的是列表中的第二个元素,因此设置参数匹配数字(0代表随机)的值为2。

3. 模拟登录

类似第二步,设置1个HTTP请求,并在HTTP请求下依次设置 正则表达式提取器和调试后置处理程序 ,这里登录的请求方式为POST,最后设置如下:

在这里,类似之前的Python文章中,添加POST登录过程中所需的参数,而authenticity_token的值,我们可以通过 ${authenticity_token} 来引用第二步骤中通过正则提取到的authenticity_token。

注意:在这里,authenticity_token需要勾选编码,如果不勾选的话,有时候可能会出现登录失败,这里我暂时还不明确具体原因,有大佬清楚的话烦请留言指导一下。

4. 断言,判断是否登录成功

接下来,在HTTP请求下设置断言来判断是否登录成功(HTTP请求->添加->取样器->HTTP请求)。GitHub登录成功后,界面的标题会显示"GitHub",而登录失败时,一般显示的标题则是"Sign in to GitHub · GitHub"。因此,我们可以设置响应断言如下:

在这里,我们对第三步骤中正则提取的 title 进行断言,当 title 变量的内容 和GitHub完全相等时,断言成功,否则失败。

5. 添加监听器

最后,为了方便查看运行后的结果,我们可以设置监听器,如图形结果、察看结果树、聚合报告等。以下是我本次设置的察看结果树(线程组->添加->监听器->察看结果树),通过它,我们可以查看线程组中各请求的具体响应过程。

OK,以上就是通过Jmeter模拟GitHub登录的过程,其实大致思路和利用Python来模拟相同,用Jmeter来模拟登录,好处就是不需要写代码也可以实践,相信大多数人阅读后都应该可以进行实践。

如有错误,欢迎指出!

利用Jmeter模拟Github登录的更多相关文章

  1. 利用Python模拟GitHub登录

    最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一 ...

  2. 利用 cookie 模拟网站登录

    import urllib import urllib2 import cookielib filename = 'cookie.txt' \#声明一个MozillaCookieJar对象实例来保存c ...

  3. 如何利用JMeter模拟超过 5 万的并发用户

    本文将从负载测试的角度,描述了做一次流畅的5万用户并发测试需要做的事情. 你可以在本文的结尾部分看到讨论的记录. 快速的步骤概要 编写你的脚本 使用JMeter进行本地测试 BlazeMeter沙箱测 ...

  4. 利用phantomjs模拟QQ自动登录

    之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写.考虑 ...

  5. Python3之利用Cookie模拟登录

    Python3之利用Cookie模拟登录 利用Cookie模拟登录步骤: 1.       在浏览器输入http://demo.bxcker.com,输入用户名和密码登录. 2.登录成功点" ...

  6. 忘记秘密利用python模拟登录暴力破解秘密

    忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...

  7. 使用ApiPost测试接口时需要先登录怎么办?利用Cookie模拟登陆!

    ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . 下 ...

  8. 利用Jsoup模拟跳过登录爬虫获取数据

    今天在学习爬虫的时候想着学习一下利用jsoup模拟登录.下面分为有验证码和无验证码的情况进行讨论. ---------------------------无验证码的情况---------------- ...

  9. 利用Python模拟登录pastebin.com

    任务 在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste.该任务需要分成如下两步利用python实现: 账号的自动登录 paste的自动创建 ...

随机推荐

  1. CommandParameter binding Introduction:

    Design Patterns SampleCode https://csharpdesignpatterns.codeplex.com/ DevExpress Support Center http ...

  2. 在 Excel 中如何使用宏示例删除列表中的重复项

    概要:在 Microsoft Excel 中,可以创建宏来删除列表中的重复项.也可以创建宏来比较两个列表,并删除第二个列表中那些也出现在第一个(主)列表中的项目.如果您想将两个列表合并在一起,或者如果 ...

  3. centos搭建svn服务器并同步到web目录

    yum install subversion mkdir -v /root/svn cd /root/svn svnadmin create web cd web/conf/ vi passwd te ...

  4. Win8Metro(C#)数字图像处理--2.8图像线性变换

    原文:Win8Metro(C#)数字图像处理--2.8图像线性变换  2.8图像线性变换 [函数名称] 图像线性变换函数LinearTransformProcess(WriteableBitmap ...

  5. 零元学Expression Blend 4 - Chapter 9 用实例了解布局容器系列-「Canvas」

    原文:零元学Expression Blend 4 - Chapter 9 用实例了解布局容器系列-「Canvas」 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的布局容器是Blen ...

  6. C语言的setlocale和localtime函数(C++也可用)

    Example 1234567891011121314151617181920212223242526272829303132 /* setlocale example */ #include < ...

  7. Delphi Thread.Queue与Synchronize的区别(差别: Synchronize是阻塞,Queue是非阻塞)

    前话:  其实大家要学会看源码, 我接下来要说的这些东东,与其等别人讲,还不如自己搞几个代码试一下,印象还深刻点 TThread.Queue和TThread.Synchronize的区别, 效果上:二 ...

  8. [2017.02.13] linux平台下统计C++项目文件个数和代码行数

    #输出排序后文件名 file='find . -name "*.[ch]" | sort' #统计文件个数 filecnt='find . -name "*.[ch]&q ...

  9. oracle11g安装时出现程序未找到文件解决办法

    在安装的最后可能会出现如下问题 解决办法如下 将win64_11gR2_database_2of2中的\win64_11gR2_database_2of2\database\stage\Compone ...

  10. spring之@value详解二(转载)

    1.1 前提 测试属性文件:advance_value_inject.properties server.name=server1,server2,server3 #spelDefault.value ...