转载自: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 Files\SmartBear\SoapUI-Pro-5.1.2\bin\ext

 
 

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

 
 
 

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

 
 
 
  1. //调用公用加密方法
  2. def myMd5 = new MD5()
  3. def key = "AAAAAAAAAAAAA"
  4. //传参
  5. def mapMd5 = [:]
  6. mapMd5 = [
  7. 'service':context.expand( '${DataSource#service_name}' ),
  8. 'version':context.expand( '${DataSource#version}' ),
  9. 'AAA':context.expand( '${DataSource#AAA}' ),
  10. ]
  11. //取DataSource的参数值
  12. def myDatasource =  testRunner.testCase.testSteps["DataSource"]
  13. //MD5加密  Start
  14. def output = myMd5.getMapString(mapMd5,key)
  15. log.info "output: " + output
  16. def sign = myMd5.getMD5(output)
  17. log.info "sign: " + sign
  18. //MD5加密  End
  19. testRunner.testCase.testSteps["HTTP"].setPropertyValue("sign",sign)
3.HTTP接口的sign值被上个步骤设置,调取接口
 
 

4. 校验参数是否正确,自己根据需求进行校验
5. 将需要的参数输出
 
6. 设置循环的参数和接口
 
 
7. 执行数据源里面的接口,进行自动化测试
 

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

SoapUI接口测试-验签值处理-调用java的加密jar包的更多相关文章

  1. Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密

    [前言] 在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加 ...

  2. C#调用java类、jar包方法(转)

    一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理: 使用的命令:jar cvf test.jar -C com/ . 其中tes ...

  3. C#调用java类、jar包方法

    一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录下的所有class文件夹全部进行打包处理: 使用的命令:jar cvf test.jar -C com/ . 其中tes ...

  4. 在C#中调用Java生成的jar包文件的方法

    C#工程调用Java已生成的jar包步骤如下: 一.使用IKVM.NET组件 首先到IKVM官网(http://www.ikvm.net)下载组件,下载地址:https://sourceforge.n ...

  5. 【转】C#调用java类、jar包方法

    原文地址:http://blog.csdn.net/black0707/article/details/5769366 一.将已经编译后的java中Class文件进行打包:打包命令JAR 如:将某目录 ...

  6. java项目打jar包的两种情况

    链接地址:http://jingyan.baidu.com/article/6b97984d8a6ddc1ca2b0bfa0.html 本文介绍一下java项目打jar包时的两种情况各怎么操作   方 ...

  7. IntelliJ IDEA导出Java 可执行Jar包

    原文:IntelliJ IDEA导出Java 可执行Jar包 保证自己的Java代码是没有问题的,在IDEA里面是可以正常运行的,然后,按下面步骤: 打开File -> Project Stru ...

  8. eclipse生成【带有外部jar包】的java可执行jar包

    之前有写过一篇使用eclipse生成java可执行jar包,但是最近的一次使用中无论如何都不成功,当双击执行打成的jar时,弹出如下错误: could not find the main class: ...

  9. java反射查看jar包中所有的类名方法名

    不反编译,不用其他工具,用java反射查看jar包中所有的类名方法名,网上很多都报错,下面这个你试试看:话不多说直接撸代码: import java.lang.reflect.Field; impor ...

随机推荐

  1. 如何将plist大图拆分成原来的小图

    我们一般为了提升性能和减少包体,大多会使用textpackture将图片打包成大图,有时候我们也需要查看它的原来小图,但是没有原图,这时候我们就可以使用cocos的工具,cocos studio. 预 ...

  2. Javascript设计模式记录

    prototype与面向对象取舍 使用prototype原型继承和使用面向对象,都可以实现闭包的效果.那么这两个的选择点,就是方法会不会产生多个实例. 例如,我们需要做一个闭包数组,并给他提供一个添加 ...

  3. soapui 测试 带hear 验证的写法

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web=& ...

  4. 马凯军201771010116《面向对象与程序设计Java》第十五周学习知识总结

    实验十五  GUI编程练习与应用程序部署 一.知识学习部分 清单文件 每个JAR文件中包含一个用于描述归档特征的清单文件(manifest).清单文件被命名为MANIFEST.MF,它位于JAR文件的 ...

  5. .net实现扫描二维码登录webqq群抓取qq群信息

    一.流程 1. //获得二维码的qrsig,cookie标志 2. //登录二维码获得二维码的状态,及最新的url 3. //登录此网址,获得Cookies 4.//cookies,筛选出skey信息 ...

  6. leetcode题解 7.Reverse Integer

    题目: Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 E ...

  7. 如何利用伪类元素和vertical-align: middle;实现元素相对于父元素居中

    HTML部分 <div class="zhihu"> <div class="loginMain"> </div> < ...

  8. caog

    import pandas as pd#匹配可发库存1. import oslst=os.listdir(r'E:\每日必做\琪琪小象库存')lst1=[]for i in lst: if i[:2] ...

  9. iis7 绑定多个ssl证书

    默认情况下iis上只能绑定一个ssl证书,如果多的话 会只认一个. 停止IIS 运行[ CMD]  ,  输入 [iisreset /STOP] 第一步:修改配置文件. 然后打开:C:/Windows ...

  10. Deepest left leaf node in a binary tree

    Recursion selfcontained recursion global variables outside of recursion Recursion Design  Whenever r ...