
通常在获取验证码时回需要一些动态的时间戳,记解析动态码的脚本
如接口/sys/randomImage/{{timestamp}}
主要2个动作,一个前置,一个后置
pm.globals.set('timestamp', new Date().getTime()) console.log("设置全局时间戳变量"+pm.globals.get("timestamp"));
前置
//通过.json()函数,获取到响应体中返回的json数据 let res = pm.response.json() //定义一个模板,这个模板存的是 const template = `<html> <img src="{{imgTemplate}}" /> </html>`; //构建img标签能识别的base64 url,注:如果接口返回的base64 url没有【data:image/png;base64,】则需要拼接进去,否则出不来图片。 //因接口返回的是一个数组,这里打印打一张图片 // let img= "data:image/png;base64,"+ res.result;//res.result是图片地址 let img = res.result.replace(/^data:image\/jpg;base64,/, ''); const result = await pm.executeAsync('/Users/tongzuqi/PycharmProjects/py/ocr/test.py', [img] ,{ command: 'python3' } ) pm.globals.set('captcha', result) console.log("设置全局时间戳变量:"+pm.globals.get("captcha"));
后置
import sys import base64 import ddddocr """ 接收一个参数 = base64 data:image/jpg;base64, 后的内容 返回一个识别后的 """ # show_ad置为False关闭广告 ocr = ddddocr.DdddOcr(show_ad=False) # 将base64转bytes image = base64.b64decode(sys.argv[1]) res = ocr.classification(image) print(res)
test.py
控制台如下