最近学习了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. easyui Full Layout

    @{    Layout = null;}<!DOCTYPE html><html><head>    <meta name="viewport&q ...

  2. WPF DataGrid自动生成列

    <Window x:Class="DataGridExam.MainWindow"        xmlns="http://schemas.microsoft.c ...

  3. WPF获取某控件的位置,也就是偏移量

    原文:WPF获取某控件的位置,也就是偏移量 此段示例在MSDN中可见.XAML代码如下: <Window xmlns="http://schemas.microsoft.com/win ...

  4. Android Studio gradle编译 NullPointerException(no error message)解决

    原文:Android Studio gradle编译 NullPointerException(no error message)解决 1.关闭Android Studio  2.找到工程目录下的 . ...

  5. 【windows】常见的系统环境变量,如%appdata%表示什么意思

    原文:[windows]常见的系统环境变量,如%appdata%表示什么意思 1.介绍 %appdata%就代表了C:Users\用户名\AppData\Roaming这个文件夹. “%”是系统变量的 ...

  6. Mac App Store应用签名和pkg签名,查看签名

    App签名 只有用苹果颁发的证书签名的应用才能在App Store上进行销售,所以我们开发的应用必须打上签名. 签名有两种方式,一是使用Xcode,在配置里面设置签名,编译出来的app就有了签名:二是 ...

  7. MySQL操作详解

    创建并使用数据库 查看服务器上的数据库:SHOW DATABASES; 创建数据库:CREATE DATABASE <数据库名>; 指明使用何数据库:USE <数据库名> 创建 ...

  8. C++的标准库函数默认都是操作字节,而不是字符,非常痛苦,所以引入了u16string和u32string(Linux上的wchar_t是32位的原因,utf16对unicode的支持是有缺陷的)good

    时至今日,字符串使用unicode已经是不需要理由的常识,但对一些有着悠久历史的编程语言来说,这仍然是个头痛的问题.如果抛开第三方库的支持,C++其实并不能实际有效地支持unicode,即使是utf8 ...

  9. Win7 访问 数据库 慢

    不让TCP/IP调谐拖累网速 在Windows Server 2008工作环境中,下载访问网络中大容量的文件内容时,我们有时会感觉到网络连接速度非常缓慢,严重的时候还会出现不能访问的现象.遭遇这类故障 ...

  10. Nodejs操作MySQL - 增删改查

    先安装npm模块项目 npm init 安装mysql npm install mysql --save Nodejs 连接msyql // 导入mysql const mysql = require ...