zoukankan      html  css  js  c++  java
  • 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. 执行数据源里面的接口,进行自动化测试
     

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

  • 相关阅读:
    java异常
    Map集和
    获取每个字符出现的次数
    从1-33号球中选取6个红球,且红球数字最多重复不超过3个 从1-16号球中选取一个篮球 由红球和蓝球共同组成一个双色球号码,且红球在左边(按照升序排列),篮球在右边。
    gitlab介绍及使用
    Maven使用介绍
    IDEA集成开发环境安装git,修改代码后文件变色代表的含义
    大数据相关
    开源镜像站汇总
    MySQL配置文件详解
  • 原文地址:https://www.cnblogs.com/yangcx666/p/9251788.html
Copyright © 2011-2022 走看看