测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

使用场景

大多数项目都有登陆权限认证,需要先登录获取token再用这个token作为请求头请求接口。

每次测试接口都需要先调登录接口,再给每个请求设置请求头。有点麻烦,根据这个配置完成之后每次只需要先调一下登录接口,其它接口就直接请求就行了,不需要再管请求头。

实现步骤

1、登录接口

登录接口采用MD5+RSA加密

先将系统用户名及密码配置在postman环境变量中

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第1张图片

调用接口获取公钥,并在该接口tests里面设置将本次公钥放进postman环境变量中

pm.test("Status code is 200", function () { 
	pm.response.to.have.status(200);
	}); 

var data = JSON.parse(responseBody); 
pm.environment.set("publickKey", data);

调用登录接口,调用之前先用MD5+RSA将用户名、密码用刚才获取到的公钥进行加密

MD5加密是postman内置的js,引入内部包只需要require(模块名)就ok了

var cryptos = require('crypto-js'); 

RSA加密需要引用外部js,引用外部js的原理就是先获取这个js整个文本内容,然后eval(js文本)就可以在后续代码里直接调用这个js里面的方法了

这里采用的先获取到js然后复制到postman的global变量里

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第2张图片

然后在登录接口的pre-request-script里面直接调用

var cryptos = require('crypto-js'); //引入postman内置包
var username = pm.environment.get("username")//环境变量中配置的用户名
username = cryptos.MD5(username);
var password = pm.environment.get("password")//环境变量中配置的密码
password = cryptos.MD5(password);
//获取公钥
var encrypt_key = pm.environment.get("publicKey");//第一个步骤中保存到环境中的公钥
eval(pm.globals.get("forgeJs")); //将forgeJS的内容当js代码执行
var encUsername = encryptRsa(encrypt_key, username);//用户名RSA加密
var encPwd = encryptRsa(encrypt_key, password);//密码RSA加密

pm.variables.set("username", JSON.stringify(encUsername));//设置成本次请求的参数
pm.variables.set("password", JSON.stringify(encPwd));
pm.variables.set("publicKey", JSON.stringify(encrypt_key));

function encryptRsa(encrypt_key, clearText){
    //注意此处上下的BEGIN PRIVATE KEY不要删除,框架自带的
    const public_key = '-----BEGIN PUBLIC KEY-----\n'
            + encrypt_key
            + '\n-----END PUBLIC KEY-----';
    var publicKey = forge.pki.publicKeyFromPem(public_key);
    var buffer = forge.util.createBuffer(clearText, 'utf8');
    var bytes = buffer.getBytes();
    var encryptedText = forge.util.encode64( publicKey.encrypt(bytes, 'RSAES-PKCS1-V1_5', {
            md: forge.md.sha256.create(),
            mgf1: {
                md: forge.md.sha1.create()
            }
        })
    );
    console.log('encryptedText: '+ encryptedText);
    return encryptedText;
};

接口参数示例

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第3张图片

tests是在获取到响应之后执行的,登录完成之后将获取到的token放进postman环境变量中

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第4张图片

pm.test("Status code is 200", function () {
	pm.response.to.have.status(200);
	}); 

var data = JSON.parse(responseBody); 
pm.environment.set("token", data);

2、整个collection添加pre-request-script

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第5张图片

pm.request.headers.add({ key: "token", value: pm.environment.get("token") });
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第6张图片

二、接口自动化项目实战

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第7张图片

三、Web自动化项目实战

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第8张图片

四、App自动化项目实战

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第9张图片

五、一线大厂简历

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第10张图片

六、测试开发DevOps体系

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第11张图片

七、常用自动化测试工具

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第12张图片

八、JMeter性能测试

测试老鸟整理,Postman接口测试MD5+RSA加密自动登录(超全总结)_第13张图片

九、总结(尾部小惊喜)

只有当你真正热爱一件事情时,你才会有足够的动力去追求它。找寻自己的热情所在,勇敢地追寻梦想,让自己成为一个充满活力、有理想、有抱负的人。

真正的成功不只是达到某个目标,更重要的是在追求的过程中不断学习和成长。积极乐观,勇往直前,让每一天都充满挑战和乐趣,你会发现成功就在不远处。

每一个小小的进步都是通向成功的重要步骤。保持耐心和毅力,在每一个瞬间都发挥到最好,你会发现那些看似遥远的梦想其实离自己并不遥远。

你可能感兴趣的:(软件测试,接口自动化测试,postman,postman,测试工具,软件测试,自动化测试,接口自动化测试,接口测试,接口自动化)