利用Jmeter模拟Github登录
最近学习了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登录的更多相关文章
- 利用Python模拟GitHub登录
最近学习了Fiddler抓包工具的简单使用,通过抓包,我们可以抓取到HTTP请求,并对其进行分析.现在我准备尝试着结合Python来模拟GitHub登录. Fiddler抓包分析 首先,我们想要模拟一 ...
- 利用 cookie 模拟网站登录
import urllib import urllib2 import cookielib filename = 'cookie.txt' \#声明一个MozillaCookieJar对象实例来保存c ...
- 如何利用JMeter模拟超过 5 万的并发用户
本文将从负载测试的角度,描述了做一次流畅的5万用户并发测试需要做的事情. 你可以在本文的结尾部分看到讨论的记录. 快速的步骤概要 编写你的脚本 使用JMeter进行本地测试 BlazeMeter沙箱测 ...
- 利用phantomjs模拟QQ自动登录
之前为了抓取兴趣部落里的数据,研究了下QQ自动登录. 当时搜索了一番,发现大部分方法都已经失效了,于是准备自己开搞. 第一个想到的就是参考网上已有方案的做法,梳理登陆js的实现,通过其他语言重写.考虑 ...
- Python3之利用Cookie模拟登录
Python3之利用Cookie模拟登录 利用Cookie模拟登录步骤: 1. 在浏览器输入http://demo.bxcker.com,输入用户名和密码登录. 2.登录成功点" ...
- 忘记秘密利用python模拟登录暴力破解秘密
忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...
- 使用ApiPost测试接口时需要先登录怎么办?利用Cookie模拟登陆!
ApiPost简介: ApiPost是一个支持团队协作,并可直接生成文档的API调试.管理工具.它支持模拟POST.GET.PUT等常见请求,是后台接口开发者或前端.接口测试人员不可多得的工具 . 下 ...
- 利用Jsoup模拟跳过登录爬虫获取数据
今天在学习爬虫的时候想着学习一下利用jsoup模拟登录.下面分为有验证码和无验证码的情况进行讨论. ---------------------------无验证码的情况---------------- ...
- 利用Python模拟登录pastebin.com
任务 在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste.该任务需要分成如下两步利用python实现: 账号的自动登录 paste的自动创建 ...
随机推荐
- 基于树莓派的微型气象站设计与开发(Windows 10 IoT Core)
前言 树莓派(Raspberry Pi,RPi)是专门为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,可以运行Linux或者Windows 10 IoT Core操作系统.本文将利用树莓派和U ...
- python socket 客服端服务端编程
客服端编程 import socket try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) except socket.error a ...
- CentOS搭建python开发环境
装了个CentOS 5.5,想在上面搭个python的开发环境,可是还是遇到了很多问题,记录一下过程: 1.python升级 查看python版本 python -V Python 2.4.3 因为p ...
- Delphi Android ActivityManager(提供了接口, 利用它可以方便的对Memory, Processes, Task, Service 等进行管)
ActivityManager: 对Activity交互提供了接口, 利用它可以方便的对Memory, Processes, Task, Service 等进行管理,. 这里对Delphi接口进行 ...
- Win8 Metro(C#)数字图像处理--2.67图像最大值滤波器
原文:Win8 Metro(C#)数字图像处理--2.67图像最大值滤波器 [函数名称] 最大值滤波器WriteableBitmap MaxFilterProcess(WriteableBi ...
- 零元学Expression Blend 4 - Chapter 16 用实例了解互动控制项「Button」II
原文:零元学Expression Blend 4 - Chapter 16 用实例了解互动控制项「Button」II 本章将教大家如何制作自己的Button,并以玻璃质感Button为实作案例. ? ...
- 中国2017 Google 开发者大会第二天简单回顾
昨天早晨发布了第一天的开发者大会回顾文章后,就匆匆忙忙赶去会场继续享受高科技的盛宴,接下来简单回顾一下第二天的大会参与情况. 昨天早晨下着小雨,并带着微风,在外面还是挺冷的,这里不得不给工作人员点个赞 ...
- 简析TCP的三次握手与四次分手(TCP协议头部的格式,数据从应用层发下来,会在每一层都会加上头部信息,进行封装,然后再发送到数据接收端)good
2014-10-30 分类:理论基础 / 网络开发 阅读(4127) 评论(29) TCP是什么? 具体的关于TCP是什么,我不打算详细的说了:当你看到这篇文章时,我想你也知道TCP的概念了,想要更 ...
- Mongodb Compile C++ Driver
之前发现直接编译mongo源码中的驱动,静态库的驱动会很大,在链接使用的时候会报很多链接错误. 转而直接编译单独提供驱动源码,同样vc2008的版本也要做我的另一篇博文中修改,在这不多说,具体参见: ...
- Unity 入門 - 延遲解析
本文大纲: 小引 共享的范例代码 使用 Lazy<T> 使用自动工厂 注入自定义工厂 小引 当我们说「解析某个型别/组件」时,意思通常是呼叫某类别的建构函式,以建立其实例(instance ...