soapui 自动化教程(四)

上一节介绍到了使用groovy实现接口自动化测试的基本功能。
本节将介绍groovy执行用例动态参数、参数回传、参数加密、soapui引入第三方jar包、生成随机参数(绕过业务逻辑中的一些唯一校验阻碍自动化),以适应更真实、复杂的场景。

soapui引入第三方jar包

现在JAVA的优势在于JVM平台和累积起来的丰富的第三方资源了,这也是groovy类JVM语言的优势。
将第三方jar包拷贝只<soapui安装目录>/bin/ext 目录下即可。
然后代码中使用import引入:例import customer.RSAUtils

加密

本例使用RSA加密,groovy需要使用java的第三方包,从网上找了个工具类打包到custom.jar,拷贝到soapui扩展目录。

1.生成公私密钥到d盘RSAUtils.generateKeyPair('d:/')
2.文本编辑器打开生成的publicKey.keystore文件,将三行合并成一行用\n分隔。例:

PUBLIC_KEY_BASE64 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCC4d0q2qR7G21TmObv5l0fxpMHcD34pqCjJoIl\nvU/Oa+0rsNkkZljvQAenY8ZNpOPzcfUL/F+qwTpuJh5ny6zl9gPloQRd6PcWob1Z+cuSoEAwBZx4\n+Yw/2QAARjxs5e8GeF0IdY/HK/HmpTCKbmKbUxNaftmeRwfgaG/TGZ93CwIDAQAB"

3.修改任务文件,对账号密码进行加密。

{
    "comment": "登录接口 status=1 登录成功。reqName格式为:TestCaseName-TestStepName;expect为期望值;extParams的属性可以动态设置值并覆盖用例的默认参数",
    "reqName": "TestSuite-login",
    "extParams": {
        "account": "rsaEncrypt{lj745280746}",
        "password": "rsaEncrypt{123456}"
    },
    "expect": {
        "status": "1"
    }
}

4.修改代码。任务文件新增了rsaEncrypt{<content>}语法,需要在代码中解析。

//新增方法----------------------------
//rsa 加密内容
def rsaEncrypt(value) {
    return RSAUtils.encrypt(RSAUtils.getPublicKey(PUBLIC_KEY_BASE64), value)
}
//添加扩展参数
def addExtParams(params, testStep) {
    if (!params || params.size() == 0) return

    params.each {k, v ->
        testStep.setPropertyValue(k, interpreter(v))
    }
}
//解析替换字符串中的自定义语法
def interpreter(v) {
    def rsaParamPattern = ~/rsaEncrypt\{\s*(.*?)\s*\}/

    def rs = v
    def sb = new StringBuffer()
    //rsa加密 替换  例:"rsaEncrypt{18600000000}"
    def mR = rsaParamPattern.matcher(rs)
    sb.delete(0, sb.length())
    while(mR.find()) {
        mR.appendReplacement(sb, rsaEncrypt(mR.group(1)))
    }
    mR.appendTail(sb)
    rs = sb.toString()
}
//······
//执行任务发送请求前覆盖默认参数
({
    //加载任务
    def taskFile = new File(CURRENT_TESTCASE.properties.task_file.value)
    def tasks = JSON.parseText(taskFile.getText())

    //执行任务
    tasks.
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值