热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

baseauth弹框_Jmeter——实现BasicAuth方式登录

背景在实际测试日常中,产品有两种登录方式,一种是普通登录方式,另一种则是BasicAuth方式登录。两种登录对应着产品中不同的操作

背景

在实际测试日常中,产品有两种登录方式,一种是普通登录方式,另一种则是Basic Auth方式登录。两种登录对应着产品中不同的操作,对权限进行了一个划分。

Postman登录

使用Postman登录,如下方式入参,即可正常登录成功

f14719dc8e19a1984d0e746084f60824.png

Jmeter登录

同样的一个登录操作,换到jmeter中实现时,倒遇到了不小的麻烦,琢磨了些时间,终究是解决了,分享出来与大家共享。

1.遇到的问题

切换到jmeter进行登录时,接口返回401,并报Unauthorized。401 是一个什么概念呢:“未经授权”。有两种可能,一是账户密码不对,二是请求格式或者 JMeter 相关设置存在问题。账号密码肯定是对的,那就是存在第二种问题了。

d6f6f0f38face38f0288afb2a746aaa0.png

遇到问题了,显示自己琢磨了一番,还是没有解决,所以就来网络上寻求帮助了。寻求一番下来,收获还的确不小。

2.解决办法1

解决思路:进行基本授权,需要添加值为 Basic base64(用户名:密码)的 Authorization 头信息。

第一步: 添加 BeanShell PreProcessor

(前置处理器 > BeanShell PreProcessor),如下所示,说明:BeanShell PreProcessor 或者 JSR223 PreProcessor 任一均可

42ca669b4ca243551222f1ae22921be4.png

第二步:将以下脚本添加到 BeanShell PreProcessor

import org.apache.commons.codec.binary.Base64;

byte[] encodedUsernamePassword = Base64.encodeBase64("username:password".getBytes());

vars.put("base64HeaderValue",new String(encodedUsernamePassword));

如下图所示:

b7923b168f9ddb856c787d8f2d1f1a35.png

第三步:添加 HTTP 信息头管理器

路径:线程组>配置文件>HTTP 信息头管理器

32be135629a2f605d521814068e8fe30.png

第四步:填写正确的 Authorization 信息

header name 填: Authorization

header value 填:Basic ${base64HeaderValue} (第二步创建的变量)

如下图所示:

32157a54ddb853a1e5355a2643e0da82.png

第五步:添加 HTTP 请求

输入获取token的接口,如下:

0eb95f300c87710f862723672721c366.png

第六步:查看结果

当创建 http 请求时,Authorization 将以 base64 编码的字符串传递给服务器,成功发送请求后,在 Request Headers 中就可以看到 Authorization 的信息。

65412a2e61acd3a4d0e546b755459083.png

自 JMeter 3.2 以后,就不需要上述的方法了,有了更优化的解决方案,那就是解决办法2。

3.解决办法2

第一步: 添加 HTTP 授权管理器

(配置元件 > HTTP 授权管理器)

说明:它提供了自动将相关 Authorization 信息添加到 HTTP 请求 header 的功能。

58504ff9463b3d7c30ad6dbc801920a6.png

第二步:添加授权信息

基本 URL:http://XXXXXXXX

用户名:user

密码:passwd

将 域 和 Realm 保留为空

Mechanism:BASIC_DIGEST

如下所示:

572d665c0eee265a0d2386dcb0ded107.png

第三步:添加 HTTP 请求

输入获取token的接口,如下:

0eb95f300c87710f862723672721c366.png

第四步:查看结果

d0675d9fbac59fb9287c0fc70b48cc0d.png

Jmeter实现Basic Auth方式登录,使用上述两个办法可以完美解决,希望对有疑惑的人有所帮助。个人还是喜欢第二种方式,第二种相对简单一些。



推荐阅读
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Python脚本编写创建输出数据库并添加模型和场数据的方法
    本文介绍了使用Python脚本编写创建输出数据库并添加模型数据和场数据的方法。首先导入相应模块,然后创建输出数据库并添加材料属性、截面、部件实例、分析步和帧、节点和单元等对象。接着向输出数据库中添加场数据和历程数据,本例中只添加了节点位移。最后保存数据库文件并关闭文件。文章还提供了部分代码和Abaqus操作步骤。另外,作者还建立了关于Abaqus的学习交流群,欢迎加入并提问。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
author-avatar
maggieting0334_990
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有