当前位置: 首页 > 知识库问答 >
问题:

如何使用 groovy 将参数传递给 SOAP UI 中的 HTTP 请求(测试步骤) 测试用例并运行它

汪建白
2023-03-14

我正在编写一个groovy脚本来执行/自动化我的测试套件。在一个测试案例中,我有一个HTTPRequest,其中我有一个请求URL、参数(用户名和密码)和方法(GET)来获取token-id,然后我会将该token id传递给下一步(SOAP请求)来获取数据。

我陷入了一个困境,需要使用groovy传递参数(用户名和密码)、请求URL和方法(GET)。我有一个在测试用例下人工创建的测试步骤,我只需要传递参数

当我在线搜索时,我知道如何将标头,url传递给SOAP请求,如下所示

def headers = new StringToStringMap()
testRunner = new com.eviware............WsdlTestCaseRunner(myTestCase,null);
testStepContext = new com.eviware.soapui........WsdlTestRunContext(testsetp);
headers.put("apikey", "abcd")
teststep.getTestRequest().setRequestHeaders(headers)
teststep.getHttpRequest().setEndpoint(encpointurl);
testsetp.run(testRunner ,testStepContext )

但是我希望知道如何将参数传递给HTTP请求(测试步骤)并运行它。

共有2个答案

国景铄
2023-03-14

使用groovy.json可以完全在groovy中完成。JsonBuilder类。

def  body = new StringToStringMap()
def jsonbildr = new JsonBuilder()
 body.put("username","Hackme")
 body.put("password","LockUout")
def root  = jsonbildr body   
jsonbildr = jsonbildr.toPrettyString()
log.info(jsonbildr)
testStep.setPropertyValue("Request", jsonbildr) 

输出:

  {
        "password": "LockUout",
        "username": "Hackme"
    }
慕容坚
2023-03-14

>

  • 将属性测试步骤添加到您的测试用例。只需让它保留默认的“属性”名称。
  • 将需要传输的属性添加到属性测试步骤
  • 在您的Groovy测试步骤中,您可以使用以下内容设置属性:

    def属性=testRunner.testCase.getTestStepByName("属性");properties.set属性值("名称","值");

    使用${Properties#name}格式的变量直接在您的请求中添加参数,并将“name”替换为实际的参数名称。如果您愿意,可以在请求正文和URL中这样做。

  •  类似资料:
    • 我正在使用SoapUI Pro。SoapUI网站表示,我应该能够在测试执行期间的任何时候设置上下文变量并获取这些值。在帮助中,它说: 常见的使用方案是通过将相应的计数器和集合保存到上下文并使用它们根据需要控制流来循环或跟踪进度。 如果我使用现成的“运行测试用例”测试步骤,我无法让它工作。被调用的测试似乎没有传递上下文信息。 这是一个非常基本的例子。在我最初的测试中,我放了一些Groovy脚本,上面

    • 我正在寻找在测试用例中添加 SOAP 请求测试步骤,从不同的 TestSuite 和测试用例,我已经对部分进行了编码以添加 Groovy 脚本以满足相同的要求,但无法添加 SOAP 请求测试步骤。有什么帮助吗? 以下是我的代码:

    • 我正在做一个SoapUI项目,我需要使用测试运行器运行我的测试套件。我正在为环境变量使用外部groovy脚本。我在这里面临的问题是,每当我从测试运行程序运行测试用例时,它的返回工作空间为空,这在Externalgroovy中使用。所以在外部groovy中,我将工作区设置为null,导致错误[getProjectByname()无法在null上调用]。下面是 使用工作空间的全局脚本的构造函数 上面我

    • 我想要“常规”测试步骤来破坏SoapUI测试用例,同时应该允许测试步骤的一个不同子集失败。 我有一个SoapUI测试用例,它执行一个相当复杂的功能测试,其中一些可选的细节由额外的JDBC测试步骤检查。由于这些细节是“可选的”,所以即使一个或多个JDBC测试失败,测试用例也不应该失败(即它应该变成绿色)。 如果要求允许测试用例中的所有测试步骤失败,我可以简单地切换测试用例行为: 打开TestCase

    • 问题内容: 我是Gradle新秀,我不确定Gradle在运行测试集时是否会启动新的JVM。 就像将JVM参数传递给Gradle测试任务一样,我想将一些参数传递给运行测试集的JVM。 我在build.gradle中添加了以下几行: 但这告诉我: 我搜索了此错误,但未能解决。 问题答案: 尝试设置封闭任务的,而不要尝试将其设置为。 您收到的错误提示该错误不存在。 例: 这只是一个猜测,因为我没有要确认

    • 我想使用SoapUI 5.0将groovy脚本连接到testlink服务器,然后将测试结果传递给测试链接 在尝试这样做之前,我安装了从GitHub(https://github.com/kinow/testlink-java-api)下载的TestLinkJavaAPI库作为jar文件。 我复制了testlink-java-api-1.9.17-1归档文件。jar到具有SoapUI的目录的路径如下