• SoapUI接口测试-验签值处理-调用java的加密jar包


    转载自:https://www.jianshu.com/p/7c672426a165

    一. 背景:

    调用接口时有个请求参数是对请求入参按一定规则进行加密生成的验签值,每次不同参数的请求生成唯一的验签值,验签值不对,接口会报相应的错误。

    二. 解决方案:
    • 代码写死账号,写死的账号不走验证逻辑
    • 调用接口之前,按照加密规则生成一样的验签值

    三. 下面用soapui工具进行接口测试生成正确验签值的示例:

    1. 参数化请求参数(DataSource)
    2. 使用groovy脚本调用java加密的jar包生成正确的验签值 (Groovy Script)
    3. 调用接口 (HTTP)
    4. 校验输出是否正确 (Groovy Script 或者 Assertion TestStep)
    5. 将需要的数据输出 (DataSink)
    6. 循环参数化的参数进行不同参数的接口测试 (DataSoure Loop)
    7. 执行所有参数请求
    1.参数化请求参数

    1.1 新建DataSource步骤

     
     

    1.2 准备excle参数化数据

     
     

    1.3 添加参数化文件,并且加上后续接口调用需要的字段名(最好和请求参数保持一致)


     

    1.4 选择需要的参数行数

     
    2.Groovy 脚本

    2.1 添加Groovy Script脚本步骤

     

    2.2 将java加密jar包放在soapui安装目录下--C:Program FilesSmartBearSoapUI-Pro-5.1.2inext

     
     

    2.3 写groovy脚本调用java加密jar包生成一样的验签值,放在soapui的安装目录下--C:Program FilesSmartBearSoapUI-Pro-5.1.2inscripts下
    将公用的脚本均可放在次目录下,供soapui直接调用

     
     
     

    2.4 soapui里面的groovy脚本调用公用的scripts里面的脚本按不同请求生成正确的sign值

     
     
     
    1. //调用公用加密方法
    2. def myMd5 = new MD5()
    3. def key = "AAAAAAAAAAAAA"
    4.  
    5. //传参
    6. def mapMd5 = [:]
    7. mapMd5 = [
    8. 'service':context.expand( '${DataSource#service_name}' ), 
    9. 'version':context.expand( '${DataSource#version}' ),
    10. 'AAA':context.expand( '${DataSource#AAA}' ),
    11. ] 
    12. //取DataSource的参数值
    13. def myDatasource =  testRunner.testCase.testSteps["DataSource"] 
    14.     
    15. //MD5加密  Start
    16.  def output = myMd5.getMapString(mapMd5,key) 
    17. log.info "output: " + output   
    18. def sign = myMd5.getMD5(output) 
    19. log.info "sign: " + sign
    20. //MD5加密  End  
    21.  
    22. testRunner.testCase.testSteps["HTTP"].setPropertyValue("sign",sign)
    3.HTTP接口的sign值被上个步骤设置,调取接口
     
     
    4. 校验参数是否正确,自己根据需求进行校验
    5. 将需要的参数输出
     
    6. 设置循环的参数和接口
     
     
    7. 执行数据源里面的接口,进行自动化测试
     

    --------------至此,整个接口就可以顺利自动化调取了和校验了----------------

  • 相关阅读:
    杨老师课堂_VBA学习教程之根据部门列创建工作表
    杨老师课堂_Java核心技术下之控制台模拟微博用户注册案例
    杨老师课堂_Java核心技术下之控制台模拟记事本案例
    杨校老师课堂之JavaScript右下角广告弹框教程
    JavaScript的数组知识案例之随机点名器
    SET QUOTED_IDENTIFIER ON
    SET ANSI_NULLS ON
    OLEDB和ODBC的区别
    教你认识主板上的主要芯片
    递归和迭代有什么区别
  • 原文地址:https://www.cnblogs.com/yangcx666/p/9251788.html
Copyright © 2020-2023  润新知