SOAPUI流程控制

尽管TestCase的默认流程是相互依次执行定义的测试步骤,但根据以前的TestStep的结果,您可能希望循环或分支的许多场景。有几种方法可以在soapUI中完成此操作;

  1. 通过使用Conditional Goto TestStep
  2. 通过创建一个为您执行此操作的Script TestStep
  3. 通过使用DataSource循环步骤 - 这与DataSource TestStep紧密相关,并在DataDriven测试部分中介绍

让我们先看看前两个,然后快速查看一下Delay TestStep,它允许你在执行TestCase时插入任意的延迟。

1. 用于流量控制的测试步骤

The Conditional Goto TestStep

Conditional Goto TestStep可包含任意数量的XPath表达式以及相应的目标TestStep。这些应用于之前TestStep的最近响应;配置的XPath表达式从上到下应用,当XPath表达式计算结果为true时,Conditional Goto将执行转移到指定的TestStep。

左上角的列表包含定义的条件(现在为空),右边的编辑器允许在创建条件之后进行编辑,底部的日志可以帮助我们测试一下;

选择添加按钮到左上角并输入一些名字;

按OK,然后选择右下角的XPath向导

这里最近的TestStep是一个JDBC请求,我们可以看到生成的XML以树形视图呈现,使我们能够轻松地选择我们想要用于我们的条件的节点。选择它并按OK后,我们得到以下内容:

生成的XPath是顶部的,在底部,我们现在必须选择TestCase应该跳转到哪个步骤,如果XPath表达式计算为true(现在不需要将上述生成的XPath包围到exists(...)子句来检查指定元素的存在)。

现在如果我们使用顶部的工具栏按钮运行Conditional Goto,我们得到:

日志显示我们的条件已成功触发。现在我们可以添加更多条件与不同的条件和分支,允许我们根据需要路由TestCase执行。

使用Script TestStep分支和循环

脚本为您提供精细的可能性来控制TestCase的流程,允许您跳转到TestCase中任何所需的TestStep,或者只是运行该TestStep,而不会实际执行它。

testRunner.gotoStepByName( "nameofteststep" )

该方法在脚本完成之后将控制权转移到指定的TestStep(不是瞬间!)。所以例如以下脚本,可以在两个目标步骤之间随机选择:

if( Math.random() > 0.5 )    testRunner.gotoStepByName( "Request 1") else    testRunner.gotoStepByName( "Request 2")  // do something else ....

testRunner.runTestStepByName( "nameofteststep" )

它实际上执行指定的TestStep。更改上述脚本以使用此方法

if( Math.random() > 0.5 )    testRunner.runTestStepByName( "Request 1") else    testRunner.runTestStepByName( "Request 2")  // do something else ....

This would run the specified TestStep before moving on. Surrounding this in a loop as follows:

// run ten random requests for( i in 1..10 ) {    if( Math.random() > 0.5 )       testRunner.runTestStepByName( "Request 1")    else       testRunner.runTestStepByName( "Request 2") }  // do something else ....

在执行剩余的脚本之前会运行十个随机请求。这里使用gotoTestStepByName将没有任何效果,它会导致与第一个例子相同。

Delay TestStep

延迟测试步骤只是它听起来像它会将TestCase的执行延迟指定的毫秒数。

In the list of TestSteps the label shows the name of the Delay TestStep and its value, which will count down while it is being executed.

双击TestStep打开上述提示,允许您将延迟设置为固定值或标准属性扩展。例如,以下值会在5和10秒之间延迟TestCase:

${=5000 + 5000*Math.random()}

时间: 2025-01-09 07:47:08

SOAPUI流程控制的相关文章

汇编语言入门:流程控制

流程控制:顺序,分支,循环 程序计数器PC中存储当前执行的程序在EM中的位置 汇编里面,用比较.跳转实现流程控制. 1.顺序:PC+1(不一定加一,看指令长度) 2.分支循环,直接赋给PC值,执行指定地址的程序 有时候需要程序有一定的流程控制能力,它不是老老实实按照顺序来执行的,中间可能会跳过一些代码 修改PC值,不可用MOV指令,PC是特殊的寄存器,特殊对待,跳转指令修改其值. 跳转指令: 1 ja 大于时跳转 2 jae 大于等于 3 jb 小于 4 jbe 小于等于 5 je 相等 6 j

从头开始-04.C语言中流程控制

分支结构: if语句:当条表达式满足的时候就执行if后面大括号中语句 三种格式: if,if else , if else if else 特点:1.只有一个代码块会被执行 2.若有else那么必有一个代码会被执行 3.一个if语句中只能以if开头,最多只能有一个else,可以有任意个else if switch(表达式){ case 常量: ... break; case 常量1: ... break; default: ... break; } : 使用场景:当一个变量只有几个固定的取值的时

shell脚本之流程控制

shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语句break 循环控制shift命令 创建无限循环 while的特殊用法 for的特殊用法 select循环与菜单 select与case 信号捕捉trap 条件语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为

shell脚本编程——流程控制

shell脚本编程--流程控制 目   录 一. if 二. case 三. for 四. while 五. until 六. 综合应用 一.if 1.语法 (1)单分支 if  判断条件:then fi (2)双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi (3)多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; then 条件为真的分支代码 else 以上条件都为假

shell脚本流程控制

shell 脚本变成使用过程中通常需要流程控制,一般情况下是顺序执行,在实际使用过程中根据不同情况需要执行不同命令,这时就用到选择执行比如if.case,有时需要重复执行多次,循环执行比如for.while.until 条件选择执行语句if 单分支 双分支 if 判断条件;then 条件为真的分支代码 fi if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi [[email protected] ~]# vim score.sh   1 #!/bin/bash  

Python基础--if流程控制与循环

流程控制之if...else 既然我们编程的目的是为了控制计算机能够像人脑一样工作,那么人脑能做什么,就需要程序中有相应的机制去模拟.人脑无非是数学运算和逻辑运算,对于数学运算在上一节我们已经说过了.对于逻辑运算,即人根据外部条件的变化而做出不同的反映. ###Python定义了缩进的机制.使用流程控制或循环时需要在执行语句前面缩进4个空格. if...else格式: if 条件: 执行语句 else: 执行语句 例如:判断日期,如果是周日则打游戏,不是周日则上班睡觉. date='Monday

程序流程控制

流程控制是所有编程语言的基础部分,在Java自然也不例外. 在程序设计时,我们经常需要改变程序的控制流程,也就是语句的执行顺序.有三种基本技术可以改变流程的控制流程: 1.调用方法.调用方法将导致控制流程离开当前方法,转移到被调用的方法. 2.选择.Java中有两种做出选择的机制:if/else语句和switch语句.三目去处符也可以用于选择.但是它通常只是if/else的简写版本. 3.循环.Java中有三种循环语句:for循环.while循环.do/while循环. 选择语句: if语句:一

Visual Basic快捷教程——流程控制

美籍匈牙利数学家冯·诺依曼于1946年提出"程序存储,顺序执行"的观念,为现代计算机奠定了重要基础.这一观点认为:应该把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存.电子计算机的数制宜采用二进制:计算机应该按照程序顺序执行.所以现在开发人员在编写的程序代码时,其实都隐含地认为计算机将来会一行一行按顺序来执行这些指令.但是在顺序执行的过程中,有时我们希望计算机根据条件判断来选择性地执行(或者不执行)一些代码--这时就需要用到选择结构(或称分支结构).另外一些时候,我们希

PHP中的流程控制

PHP中的流程控制: 任何PHP脚本都是由一系列的语句构成.一条语句可以是一个赋值语句,一个函数调用,一个循环,一个条件语句或者甚至是一个什么也不做的语句(空语句).语句通常以分号结束.此外还可以用花括号将一组语句封装成一个语句组.语句本省可以当作是一行语句. if语句 if结构是很多语言包括php在内最重要的特性之一,他允许按照条件执行代码片段.php的if结构和C语言相似: <?phpif($a > $b) echo"a is bigger than b"; ?>