MD5在SoapUI中使用Groovy

MD5在SoapUI中使用Groovy,groovy,md5,soapui,Groovy,Md5,Soapui,我创建了一个测试用例,其中包含由键和值组成的参数。 我需要按照字母顺序获取所有这些参数,然后创建一个MD5哈希值,我将把它传递给这个测试的一个参数 有什么建议吗?我在谷歌上查了一下,找不到任何有用的东西。 谢谢你 您可以使用Groovy脚本测试步骤检索SoapUI的测试用例属性,如下所示 def map = context.testCase.properties.keySet().inject([:]){map, key -> map[key] = context.testCase.ge

我创建了一个测试用例,其中包含由键和值组成的参数。 我需要按照字母顺序获取所有这些参数,然后创建一个MD5哈希值,我将把它传递给这个测试的一个参数

有什么建议吗?我在谷歌上查了一下,找不到任何有用的东西。
谢谢你

您可以使用Groovy脚本测试步骤检索SoapUI的测试用例属性,如下所示

def map = context.testCase.properties.keySet().inject([:]){map, key ->  map[key] = context.testCase.getPropertyValue(key); map }  
map.each { key, value ->     log.info "Property name : ${key} and value : ${value}" }
因为您拥有map/key=value格式的属性,所以您应该能够实现所需的功能

关于md5生成,请参阅

导入java.security.MessageDigest

def generateMD5_A(字符串s){ MessageDigest.getInstance(“MD5”).digest(s.bytes).encodeHex().toString()文件 }


我已经做了以下工作:

import java.security.MessageDigest
def testStep = testRunner.testCase.testSteps["3D Secure Call"]
def str = new StringBuilder();
 for (prop in testStep.getPropertyList()){

    if(prop.getName() != "K" && prop.getName() != "RawRequest" && prop.getName() != "Domain" && prop.getName() != "Password" && prop.getName() != "ResponseAsXml" && prop.getName() != "Request" &&  prop.getName() != "RawRequest" && prop.getName() != "Response" && prop.getName() != "Username" && prop.getName() != "Endpoint"){
        str.append(prop.getName() + "=" + testStep.getPropertyValue(prop.getName()) + "&" )

    }
}
str.append("K=1473942615907cuwmviz")
return (MessageDigest.getInstance("MD5").digest(str.bytes).encodeHex().toString())
我得到的字符串正是我想要的:M=10000330&PKey=8c124262b3d66f9e47185fd34eec13bbef2acd03170bcf8c284985193bc9a6&a4=50000&a5=EUR&XID=1234567812345678912&K=1473942615907cuwmviz

但是现在我需要应用MD5,我得到了一个错误。有什么建议吗?
没有这样的属性:类的字节:java.lang.StringBuilder

能否显示有关参数或屏幕截图的详细信息?你在谈论测试用例属性吗?问题是创建md5还是访问属性?问题是如何访问参数,以字母顺序追加参数,以及在需要添加的每个key=值之间添加参数。由于某些原因,我无法添加屏幕截图。不确定参数是什么意思?我的意思是属性顺便问一下,有没有办法将所有属性转移到测试中?或者将属性列表直接上传到测试中?这是什么意思?不明白?你一开始就试过了吗?有一个选项可以将属性文件上传到属性测试步骤中。之后,我创建了一个测试,我想将所有这些属性加载到测试本身中。我一开始是一个接一个地手工做的。上面的答案解决了你原来的帖子吗?如果没有,请编辑您的问题以获得正确的详细信息。关于您的解决方案,我得到的结果是空的{}。如何指定从哪个测试用例检索该数据?Getting:groovy.lang.MissingMethodException:No签名的方法:Script115.generateMD5_A()适用于参数类型:(java.lang.StringBuilder)值:[M=10000330&PKey=c74737d2a1e27d2efec56cf8148bc6e2b68eac48a8daed17e795421c4acc51&a4=50000&a5=EUR&XID=1234567812345678912&K=1473942615907cuwmviz]可能的解决方案:第14行的generateMD5_A(java.lang.String)错误我已更改:def generateMD5_A(字符串s){MessageDigest.getInstance(“MD5”).digest(s.bytes”).Hex编码).toString()}generateMD5_A(str)