当前位置: 首页 > news >正文

vue 做企业网站行不wordpress 国人原创

vue 做企业网站行不,wordpress 国人原创,湖北省建设部网站公告,中国制造网登录目录#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09; 前言 一些问题 postma… 目录导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜 前言 一些问题 postman 有内置加密Api但不支持RSA加解密码。 引入其他的js文件至环境变量利用eval 函数进行解析还可以利用request获取将其保存至全局变量中 postman 中 request对象属性皆为只读如何把提交时的明文变为密文? (前置脚本) 实现目标 在测试登录接口时针对登录接口需要用到的 username、password进行加密加密方式分别为 rsa、aes 再将加密后的数据传输给后端。 方法都是相似的知道如何加密其他的接口和字段都是差不多的实现方式。 1、Postman工具 对于Postman对于这个工具我认为是大都数小伙伴都要会的一个工具只是学习的程度的不同罢了 大致就是分为 1刚学的我们就是用来测试一些基本接口 2用了一段时间的我们知道了有环境变量、集合操作等 3了解到 postman 中可以结合Js文件对请求做一些参数断言等等 4集合接口测试、编写测试用例、利用内置变量随机生成数据测试接口等 5… 2、Pre-request Script 编写前置脚本 1脚本执行顺序 说之前先说说postman中脚本的执行顺序这里贴一张官方的图 postman 官方文档 在 Postman 中单个请求的脚本执行顺序如下所示 与请求关联的预请求脚本将在发送请求之前执行 与请求关联的测试脚本将在请求发送后执行 在发起request请求前会先执行前置脚本收到接口返回结果后再执行 test script 2准备测试接口信息 准备一个后端请求接口能接收请求参数即可采取的是将加密的信息打印 测试接口信息 地址http://localhost:8080/login {username:{{rsa:username}},password:{{esc:password}}}补充用双层大括号包裹的参数是引用postman的环境变量做到动态可变 参数名前的rsaaes是为了测试多种加密方式给加的判断依据。 图片说明增加一个接口填入基本信息 3Postman设置环境变量 这两处都需要用到 接口用到的数据一般是存放在某一个环境变量中 如果很多处用到一般可以考虑放到全局变量中了~ 将rsa:username、aes:password放到一个环境变量中这个环境变量的名称的就叫login 点击上图中的add即可 图片说明记得 ctrl s 保存手误esc应为aes 另外用全局变量来保存一下 rsa的公钥这里的公私钥都是拿工具直接生成的。 工具地址https://www.bejson.com/enc/rsa/ 将公钥保存在postman的全局变量中 另外全局变量之后用要来保存用来加密的 js 文件不过这一步是利用前置脚本做的。 下载forge git clone https://github.com/digitalbazaar/forge.git cd forge文件夹下 npm install这样就算安装完了否则会一直报没有找到 forge 对象 4编写前置脚本 编写前置脚本的作用就是给接口的参数进行加密。 所以最简单的方式 拿到js文件 运行 将参数进行加密 // ------ 导入RSA ------if(!pm.globals.has(forgeJS)){pm.sendRequest(https://raw.githubusercontent.com/loveiset/RSAForPostman/master/forge.js, (err, res) {if (!err) {// 保存至全局变量中forgeJs 为 keyres.text() 为value值pm.globals.set(forgeJS, res.text())}})}​// 这个函数前端的小伙伴应该比较了解// 它的作用是把对应的字符串解析成js代码并运行(将json的字符串解析成为JSON对象)eval(postman.getGlobalVariable(forgeJS));​// ------------ AES 加密 ------------function aesEncrypt(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 postman.getGlobalVariable(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;}}pm.environment.set(rsa:username, aesEncrypt(nzc_wyh));pm.environment.set(aes:password, rsaEncrypt(123456));后端的接口返回数据就是将加密的数据直接放回 这种方式接口的测试结果 运行完查看环境变量和全局全量的变化 如果同一个请求中有多个参数要进行加密那岂不是要写多次set这显然是不合理的下面就做一个改善 当然如果不会的话可以一起请教前端小伙伴以让代码更加完善。 5优化前置脚本 // ------ 通用方法 ------// 提取{{}}中内容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) {// 保存至全局变量中forgeJs 为 keyres.text() 为value值pm.globals.set(forgeJS, res.text())}})}​// 这个函数前端的小伙伴应该比较了解// 它的作用是把对应的字符串解析成js代码并运行(将json的字符串解析成为JSON对象)eval(postman.getGlobalVariable(forgeJS));​// ------------ AES 加密 ------------function aesEncrypt(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 postman.getGlobalVariable(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;}}// 获取当前请求中的加密变量 这里判断为字符串的原因是// 我们引用环境变量时一定是{{}} 这种格式的let requestData; if((typeof request.data) string){requestData JSON.parse(request.data)} else {requestData request.data;}​// Object.assign 拷贝对象 将request.headers 中的所有数据拷贝到 requestData中requestData Object.assign(requestData, request.headers);​// 遍历Object.keys(requestData).map(key {// 内容let value requestData[key] ;// 是否为变量if (value.indexOf({{) ! -1) { let content getBracketStr(value);// 判断用是否加密加密的话又是用哪种方式加密if (content.indexOf(aes:) ! -1) {let c content.split(aes:)[1];let encryptedContent pm.environment.get(c); // 加密内容encryptedContent encryptedContent ? encryptedContent : c;pm.environment.set(content, aesEncrypt(encryptedContent));} else if (content.indexOf(rsa:) ! -1) {let c content.split(rsa:)[1];let encryptedContent pm.environment.get(c); // 加密内容encryptedContent encryptedContent ? encryptedContent : c;pm.environment.set(content, rsaEncrypt(encryptedContent));}}});优点 如果同一个请求中有多个参数加密不用手动set而是通过循环全部set进去 可以使用多种加密方式只要继续扩展即可 扩展性更高 测试结果 下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜 每一次努力都是为了改变命运每一次奋斗都是为了实现梦想。不要停下脚步勇敢追逐你的努力将成就辉煌让世界为之震动。 人生犹如航行大海不要畏惧风浪勇往直前。只有敢于冒险坚持不懈地奋斗才能驶向属于自己的成功港湾让梦想在风帆下翱翔。 永不止步不论前路如何艰险坚持追求梦想的勇气和决心。相信自己的能力勇敢面对挑战只有奋斗才能让我们在人生舞台上闪耀不灭的光芒。
http://www.hkea.cn/news/14455826/

相关文章:

  • 雄安网站建设多少钱网页微博怎么退出登录
  • 苏州策划网站模板建站公司wordpress 首页关键词
  • 邯郸商城网站建站wordpress uc点赞
  • 江苏广泽建设公司网站济宁网站建设案例展示
  • 青岛建设官方网站wordpress仿异次元下载页
  • 网站费用多少钱一年香烟网上商城
  • wordpress写的网站简单房地产网站
  • 微信官方网站公众平台全达seo
  • 娃哈哈网站建设的目标通讯设备 技术支持 东莞网站建设
  • 哈尔滨快速建站公司推荐wordpress插件社交分享
  • 甘肃交通工程建设监理公司网站能先做网站再绑定域名吗
  • 网站建设公司招网站设计旅游网页设计模板代码下载
  • 推广公司的网站可以采取哪些方式网站质量
  • 陕西省住房和城乡建设厅网官网网站关键词如何做优化
  • 房屋网站模板模板网站的弊端
  • 工信部 网站开发设计师海阳有没有做企业网站的
  • 主流做网站程序代码成都私人网站制作公司
  • 铜陵app网站做招聘洛阳小程序开发公司
  • 番禺高端网站制作做网红用哪个网站
  • 建设银行的网站用户名是什么问题万网wordpress
  • 浅谈网站建设的目的和意义如何做网站demo
  • 屏蔽收索引擎抓取网站wordpress 评论表情插件
  • 关于插画的网站wordpress中文版主题百度网盘
  • 做仿站如何修改网站管理权限做兼职网站赚钱吗
  • 如何做百万格子网站wordpress菜单与页面关联
  • 手机排行榜网站网站建设及发布的流程
  • 建材类网站建设需要的资料高端上海网站设计公司
  • 淮安做网站建设的网络公司男人和女人床上做性视频网站
  • 网站建设工程师证书网络运营商ip地址
  • 做装修公司的网站校园网站建设培训的心得体会