jmeter接口测试实战:接口加密、接口解密、签名sign接口实战详解

news2024/12/26 22:39:12

在接口测试中,签名(sign)是一种重要的加密方式,用于保障数据传输的安全性和完整性。在这篇文章中,我们将通过一个具体的案例来学习如何使用 JMeter 进行签名接口的测试,并用 Python 代码进行实战演示。

比喻:就像是把一个礼物装进了一个盒子里,然后用精美的包装纸和细带子把它封起来,让别人无法轻易地看到里面的内容,只有用正确的方法才能打开盒子,看到里面的惊喜。

同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

自动化测试篇—实战案例:自动化及接口自动化本质及适用场景

第一步:生成签名

首先,我们需要根据特定的规则生成签名,以确保数据的安全性和完整性。签名的生成过程可以使用 Python 编写脚本实现。我们可以使用 hashlib 模块对请求参数进行加密,并将加密结果作为签名的值。

比喻:就好像是做一道菜,需要按照特定的配方和步骤进行烹饪,最终才能得到美味的佳肴。而生成签名就像是添加各种香料和调味料,让菜肴更加美味可口。

下面是一个 Python 脚本示例,可以根据指定的规则生成签名:

import hashlib
 
def generate_sign(params):
    keys = sorted(params.keys())
    items = []
    for key in keys:
        if params[key] != '':
            items.append('%s=%s' % (key, params[key]))
    sign_str = '&'.join(items)
    sign_str += 'secret_key'
    md5 = hashlib.md5()
    md5.update(sign_str.encode(encoding='utf-8'))
    return md5.hexdigest().upper()

这个脚本将请求参数按字母顺序排序,并将其转换成字符串。然后,它会在字符串的末尾添加一个密钥(例如“secret_key”),最后使用 MD5 算法对整个字符串进行加密,并返回签名值。

第二步:设置 JMeter 测试计划

接下来,我们需要设置 JMeter 的测试计划。首先,我们需要创建一个线程组,并设置线程数和循环次数。

比喻:就好像是在野外露营,需要建立一个帐篷,设置好人数和住宿时间,以确保大家能够舒适地度过夜晚。

然后,我们需要添加一个 HTTP 请求,默认方法为 POST。在请求中,我们需要设置请求的 URL、参数、请求头信息等。其中,最重要的是签名值,需要从 Python 脚本中获取并传递给请求参数。

比喻:就好像是在一家餐馆点餐,需要告诉服务员菜单上想要点什么菜,以及各种口味和偏好。而签名值就像是你的身份证号码,需要通过验证才能得到餐品和服务。

下面是 JMeter 的测试计划配置示例:

线程组:Thread Group

  • 线程数:10
  • 循环次数:1
  • 延迟时间:1000ms

HTTP 请求:HTTP Request

  • URL:http://api.example.com/sign.do
  • 参数:

         username:${username}
         password:${password}
         sign:${sign}

请求头信息:

  • User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0
  • Content-Type:application/x-www-form-urlencoded;charset=UTF-8

在这个测试计划中,我们设置了一个线程组,其中包含 10 个线程。

每个线程将发送一次 HTTP 请求,然后进行一次循环。我们还设置了一个延迟时间,以确保请求之间有足够的时间间隔。

在 HTTP 请求中,我们设置了请求的 URL 和参数。其中,用户名和密码是需要在运行时从变量中获取的值。而签名值则需要通过 Python 脚本生成并传递给请求参数。

最后,我们还设置了请求头信息,包括 User-Agent 和 Content-Type 等。

第三步:运行测试计划

最后,我们需要运行测试计划,并查看结果。在测试执行过程中,JMeter 会模拟多个用户同时访问接口,以检测其性能和稳定性。测试结果也可以通过 JMeter 的报告功能进行分析和展示。

比喻:就好像是在一家餐厅吃饭,服务员把菜品和饮料端上来之后,你需要对它们进行品尝和评估,以确保它们符合自己的口味和要求。

下面是使用 Python脚本和JMeter进行签名接口实战的代码示例:

import random
import time
import requests
 
# 定义请求参数
params = {
    'username': 'admin',
    'password': '123456',
}
 
# 生成签名
sign = generate_sign(params)
 
# 设置 JMeter 变量
vars.put("username", params["username"])
vars.put("password", params["password"])
vars.put("sign", sign)
 
# 发送 HTTP 请求
response = requests.post('http://api.example.com/sign.do', data=params)
print(response.text)

在这个示例中,我们首先定义了请求参数,并使用 Python 脚本生成签名值。然后,我们将这些参数设置为 JMeter 变量,以便在测试计划中使用。

最后,我们发送一个 HTTP 请求,并打印出响应结果。这样,我们就可以通过 Python 脚本和 JMeter 实现签名接口的实战演示了。

总结

通过本文的学习,我们了解了如何使用 JMeter 进行签名接口测试,并用 Python 代码进行实战演示。签名作为一种重要的加密方式,在接口测试中起到了重要的作用。希望本文对大家有所启发,能够帮助大家在接口测试工作中更加熟练地运用签名技术。

最后祝大家都能找到心仪的工作,快乐工作,幸福生活,广阔天地,大有作为。PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G【点击文末小卡片免费领取】

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1098577.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集成友盟qq互联分享,导出风险问题处理

处理方案:移除 android:exported"true"即可。 注意友盟SDK QQ share 里默认配置是android:exported"true",所以要覆盖即可。

为什么CDN能创造这么利益

互联网的快速发展带来了更多的在线内容和应用,但同时也引发了对网站性能的高要求。用户对快速加载的期望越来越高,这就需要采用高效的内容分发解决方案。在这方面,CDN(内容分发网络)扮演了关键角色,通过其分…

uniapp(uncloud) 使用生态开发接口详情2(使用 schema创建数据, schema2code创建页面, iconfont 引入项目)

上一篇介绍如何创建项目,接下来该是如何使用 在项目中pages 目录下,新建界面 项目运行,浏览器中用账号密码登录, 新建一级和二级页面 2.1 系统管理 > 菜单管理 (新增一级界面) 2.2 找到刚刚创建的菜单, 操作行有 子菜单(点击) 用DB Schema创建页面, 3.1 在uniCloud > d…

大规模语言模型人类反馈对齐--RLHF

大规模语言模型在进行监督微调后, 模型具备了遵循指令和多轮对话的能力, 具备了初步与用户进行对话 的能力。然而, 大规模语言模由于庞大的参数量和训练语料, 其复杂性往往难以理解和预测。当这些模型被部署 时, 它们可…

经济不景气时,企业如何通过反向竞价节省成本?

在经济不景气时期,企业往往被迫寻找创新方法来削减成本,争取提高盈利。其中一种越来越受欢迎的方法就是使用反向竞价。 反向竞价是一种采购策略,它颠覆了传统的采购流程,允许供应商竞争买方的业务。这种方法可以节省大量成本&…

退税政策线上VR互动科普展厅为税收工作带来了强大活力

缴税纳税是每个公民应尽的义务和责任,由于很多人缺乏专业的缴税纳税操作专业知识和经验,因此为了提高大家的缴税纳税办事效率和好感度,越来越多地区税务局开始引进VR虚拟现实、web3d开发和多媒体等技术手段,基于线上为广大公民提供…

C# Winform编程(2)常用控件

C# Winform编程(2)常用控件 常用控件 常用控件 标签,文本,按钮,列表框,组合框等的使用 Program.cs using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks…

Python-pyecharts和pandas库

目录 pyecharts库 pandas库 示例1 示例2 pyecharts库 pyecharts是一个基于Python的交互式数据可视化库,旨在帮助用户轻松地创建各种类型的图表和可视化效果。该库是在Echarts开源项目的基础上开发的,Echarts是一款由百度开发的优秀的数据可视化工具。…

静力触探数据智能预处理(3)

静力触探数据智能预处理(3) 前言 将钻探、物探、静力触探三种数据放在一起对比分析,三种方法间存在尚不明确的物性联系。利用某规范进行土的分类,得出了全是砂土的错误结论,非专业编写,仅供参考。 1、对…

Xilinx IP 10G Ethernet PCS/PMA IP Core

Vivado 10G Ethernet PCS/PMA介绍 1介绍 完整的10G以太网接口如下图,分为10G PHY和10G MAC两部分。 这篇文章重点讲 10G Ethernet PCS/PMA。 2 IP的基本介绍 10G以太网物理编码子层/物理介质连接(PCS/PMA)核心在Xilinx 10G以太网介质访问控制器(MAC)核心和具有10Gb/s…

并发数的计算

一 常用平均并发数计算公式 1.1 普通计算方法 计算公式: TPS总请求数/总时间按照需求所示,第32周有4.13万的浏览量,那么总请求数估算为4.13万 总请求数4.13完请求数41300请求数 总时间1天24小时24*3600秒 TPS41300请求数/24*3600秒0.48请求数…

2.1 初探大数据

文章目录 零、学习目标一、导入新课二、新课讲解(一)什么是大数据(二)大数据的特征1、Volume - 数据量大2、Variety - 数据多样3、Velocity - 数据增速快4、Value - 数据价值低5、Veracity - 数据真实性 (三&#xff0…

Cpolar和极简主义文件管理器:为用户提供高效稳定的个人云存储服务

文章目录 1. 前言2.Tiny File Manager网站搭建2.1.Tiny file manager下载和安装2.2 Tiny file manager网页测试2.2 Tiny file manager网页测试3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试总结 1. 前言 文件共享和查阅是现在网络最常见的应用场景&am…

基于ssm的图书商城

功能如下图所示 摘要 今天,我们生活在一个充满活力的时代,其中网购已经成为一种主要购物方式。传统实体书店的客流量日益减少,而实体书籍的销售量也逐年下滑,这不可避免地导致了在线图书商城的崛起。在线商城具有众多优势。首先&a…

谷歌、AMD、英特尔加入挑战,英伟达AI解决方案还能继续“遥遥领先”吗?

夕小瑶科技说 原创 编译 | 谢年年 要问世界范围内人工智能解决方案谁最“遥遥领先”? 那肯定是英伟达! 然鹅这一情况很有可能会发生变动。 谷歌正在构建自己的人工智能基础设施! 除了谷歌,在软件方面,Meta的PyTor…

华为云云耀云服务器L实例评测|CentOS系统盘迁移到数据盘教程讲解

华为云云耀云服务器L实例评测|CentOS系统盘迁移到数据盘教程讲解 在华为云网购买华为云云耀云服务器L实例的Centos系统机器,可能会出现没有在挂载数据盘直接安装在系统盘情况,又或者系统初始化自动挂载在其他目录上。建议大家都把数据存放在数据盘下 …

CICD:Circle CI 实现CICD

持续集成解决什么问题 提高软件质量效率迭代便捷部署快速交付、便于管理 持续集成(CI) 集成,就是一些孤立的事物或元素通过某种方式集中在一起,产生联系,从而构建一个有机整体的过程。 持续,就是指长期…

如何养好一个微信新号?

最近听到一句话,“微信是个完整的互联网”。 你还真别说,真是。如果你还觉得微信只是个聊天视频打电话的工具,那可就有信息差了。 微信有各种各样的小程序,有打车的,有交话费的,有游戏,可以说&a…

【leetcode】260.只出现一次的数字Ⅲ

思路 由于只能使用线性时间复杂度。所以 遍历数组&#xff0c;将每个数字出现的次数存储到字典map中遍历字典&#xff0c;将次数为1的数字取出&#xff0c;就是答案 代码 #include<iostream> #include<vector> using namespace std; #include<map>class …

职场人的拖延症晚癌克星来啦 当当狸时间管理器

时间对于每个人都是公平的❗别说孩子对时间毫无观念&#xff0c;其实成年人又有几个对时间有观念呢&#xff1f; 总说时间不够用&#xff0c;却事事拖拉磨叽&#xff0c;拖延症严重的不仅是孩童&#xff0c;成人占据更多。 据调查显示超九成的职场人士都患有拖延症 拖延症的表…