先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
- postman中request对象属性皆为只读,如何把提交时的明文变为密文?
解决问题一
- postman支持eval函数,我们只要将rsa代码存入环境变量中,在需要的时候调用eval函数就可以解决
解决问题二
- postman在每次请求时都会先执行pre-request scripts 中的脚本,在此处我们可以通过request对象拿到
此次请求的参数,但request中的参数只可读。
所以我们只能通过环境变量去占位然后在去加密变量中的值,于是在请求时的内容就会变成加密的内容。
针对postman对{{}}读取的方式,我们可以先在请求参数中将要加密的内容包裹进来,然后在动态创建此变量,
并将变量的加密内容写入此环境变量中,最后在执行请求完毕后将此变量清除
例子
AES加密参数
- 必需用{{}}将内容包起来,因为在进行请求后postman遇到{{}}时会从环境变量中读取,如果有该环境变量则会动态替换。
- $符号后面是我们要加密的内容,可以直接填写内容或写入环境变量的名称
动态生成的环境变量
如果不想在环境变量夹中显示动态生成的环境变量可以将下方tests中的脚本加入到tests中
3. 点我领取全套自动化测试资料
相关脚本
- 注意:将脚本加入到collections中会更好
- Pre-request Scripts
// ------ 通用方法 ------
// 提取{{}}中内容
function getBracketStr(text) {
let result = ‘’
let regex = /{{(.+?)}}/g;
let options = text.match(regex);
if (options && options.length > 0) {
let option = options[0];
if (option) {
result = option.substring(2, option.length - 2)
}
}
return result
}
// ------ 导入RSA ------
if(!pm.globals.has(“forgeJS”)){
pm.sendRequest(“https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.js”, (err, res) => {
if (!err) {
pm.globals.set(“forgeJS”, res.text())
}
})}
eval(postman.getGlobalVariable(“forgeJS”));
// ------------ AES 加密 ------------
function aesEncrypt(content){
//console.log('AES: ’ + content);
const key = CryptoJS.enc.Utf8.parse(“Y5MUIOM7BUWI7BQR”);
const iv = CryptoJS.enc.Utf8.parse(‘S41AXIPFRFVJL73Z’);
const encrypted = CryptoJS.AES.encrypt(content, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7});
return encrypted.toString();
}
// ------------ RSA 加密 ------------
function rsaEncrypt(content){
const pubKey = pm.environment.get(“RSA_Public_Key”);
if(pubKey){
const publicKey = forge.pki.publicKeyFromPem(pubKey);
const encryptedText = forge.util.encode64(
publicKey.encrypt(content, ‘RSAES-PKCS1-V1_5’, {
md: forge.md.sha1.create(),
mgf: forge.mgf.mgf1.create(forge.md.sha1.create())
}));
return encryptedText;
}
}
// ------ 存储所有未加密环境变量 ------
if(!pm.environment.has(‘localStore’)){
pm.environment.set(‘localStore’, ‘{}’);
}
let localStore = JSON.parse(pm.environment.get(‘localStore’));
// 获取当前请求中的加密变量
let requestData;
if((typeof request.data) === ‘string’){
requestData = JSON.parse(request.data)
} else {
requestData = request.data;
}
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
片转存中…(img-36Y6dA2L-1713344907557)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!