转载自: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. 使用VB6读取数据库资源并发送邮件(原创)

    Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection ...

  2. privacy policy url

    提交审核资料时需要给出隐私条约资料网址privacy policy url 参考新浪微博地址http://m.weibo.cn/page/646?entry=client

  3. 计算机网路中CDP,LLDP,STP的详解

    CDP,LLDP,STP知识详解 (1) CDP CDP(Cisco Discovery Protoco:Cisco发现协议)是Cisco专有的用来发现邻接点的协议 ,所有的Cisco产品都支持CDP ...

  4. Windows10 VS2017 C++编译Linux程序

    #include <cstdio> #include <iostream> #include "unistd.h" using namespace std; ...

  5. Tomcat配置SSL后使用HTTP后跳转到HTTPS

    Tomcat配置好SSL后将HTTP请求自动转到HTTPS需要在TOMCAT/conf/web.xml的未尾加入以下配置: <login-config> <!-- Authoriza ...

  6. JavaScript获取元素尺寸和大小操作总结(转载)

    一.获取元素的行内样式 var obj = document.getElementById("test"); alert(obj.height + "\n" + ...

  7. C#字符串的CompareTo比较,让我疑惑的地方

    在学习选择排序算法的时候,用到CopareTo方法.由于比较的数字,是自己随意输入的. 当我输入字符串“8”,它和字符串“16”比较时候. string str1 = "8"; s ...

  8. 日志管理中获取浏览器、操作系统、IP等信息。。。

    今天在书写日志管理的模块的时候,遇到了一些问题,首先是日志的添加,就是在登录的时候记下他登录的名字以及登录的时间和登录的一些信息给存入到日志表中,这一下给蒙了,于是就查找资源,在这里我就简单地总结一下 ...

  9. python学习笔记——(一)基础设置

    python的学习,今天就开始上开发环境Pycharm,这样以后在调试,使用和学习起来就方便很多. 我用的是JetBrains PyCharm Community Edition 2018.1.1 x ...

  10. Could not find method google() for arguments [] on repository container,rn 集成react-native-camera 出现此错误的解决方法

    (1) app/build.gradle android { compileSdkVersion buildToolsVersion "25.0.2" } compile (pro ...