SoapUI中是如何断言的呢(二)

什么是断言?

断言是指肯定或陈述某事的行为。也可以将其解释为检查点或验证点。

将请求发送到Web服务器后,就会收到响应。我们需要验证响应是否包含我们期望的数据。为了验证响应,我们需要使用断言。

XPATH匹配声明

使用XPath表达式选择目标节点及其值。XPath是一种XML查询语言,用于从XML文档中选择节点。

步骤1:现在,点击“添加新断言”按钮后,

  1. 选择断言类别。

  2. 选择断言类型–在这种情况下为“ XPath Match”

  3. 点击“添加”

步骤2:“添加XPath窗口”打开。

在添加XPath之前,我们需要声明NameSpace。XML名称空间是由统一资源标识符(URI)引用标识的名称的集合,这些名称在XML文档中用作元素和属性名称。SOAP UI XPath断言中使用相同的内容。

对于声明XML命名空间,我们只需要单击“声明”按钮即可为我们完成工作,否则我们也可以自己手动声明一个命名空间。

声明名称空间后,我们需要使用创建的名称空间来引用XPath。

单击“声明”按钮后,将弹出两个命名空间,因为我们有两个URI。其中一个是架构URL,另一个是实际的Web服务URL。在引用XPath时,我们需要使用Web服务所在的实际名称空间,而不是架构名称空间。

声明名称空间soap ='http://schemas.xmlsoap.org/soap/envelope/';

声明名称空间ns1 ='http://tempuri.org/';

步骤3:现在,我们需要输入需要验证的XML节点的XPath。

// ns1:AddResult为我们提供<AddResult>&</ AddResult>和ns1之间封闭的节点的值,该节点对应于指向'http://tempuri.org/'的声明名称空间。

输入XML后,我们需要单击“从当前选择”,以便从当前响应中获取值以进行比较。

步骤4:到目前为止,

  1. 声明名称空间后,我们进入了需要验证的XML节点的XPath。

  2. 我们需要单击“从当前选择”以将当前值作为期望值。

  3. 当前值显示给用户,我们可以根据需要进行修改。

  4. 点击“保存”。

步骤5:添加的断言将显示如下。

脚本断言

这种断言技术是使用最广泛的一种技术,因为它很难管理和维护数百个断言。

SOAP UI使用Groovy脚本或JavaScript来对断言进行脚本化。采用脚本技术来开发用于测试SOAP的框架。脚本断言在以下情况下使用。

脚本允许用户分别使用设置和拆卸方法在执行TestCase之前和之后执行一些操作。建立是在执行特定方法之前执行的过程(例如,对象创建和初始化),而拆卸是在执行特定方法之后执行的过程(例如:销毁对象并清理)。此功能在其他断言类型中不可用,只能通过编码来完成。

它允许用户执行打开/关闭项目,初始化或清理与项目相关的设置以及使用环境变量的工作,这在脚本编写过程中非常有用。

它有助于我们断言动态响应内容。

脚本断言用于创建SOAP UI未预定义的用户定义的断言。

对于演示脚本断言,我们将使用计算器WSDL,即我们先前创建的测试用例“添加”。

步骤1:添加groovy脚本的步骤与其他断言的步骤相同,除了断言不是预定义的断言。而是由用户定义的断言提供了比内置的更大的灵活性。

选择必须对其添加断言的“测试”步骤。

单击“添加声明”按钮,如下所示。

步骤2:现在选择Assertion类别。

  1. 在这种情况下,它是脚本。

  2. 选择“脚本声明”,并且没有与之关联的子类型。

  3. 点击“添加”。

步骤2:将打开“脚本对话框”,用户可以在其中编写用户定义的脚本来验证响应XML。

步骤3:现在让我们编写一个Groovy脚本来验证转换率。脚本附在下面,并带有注释。建议您在尝试编写自己的脚本之前先了解Java脚本或Groovy脚本。

//Define Groovy Utils and holder for validating the XML reponse content
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context)
def holder = groovyUtils.getXmlHolder(messageExchange.responseContent)


//Define the NameSpace
holder.namespaces["ns1"] = "http://tempuri.org/"


//Get the Value of the Node 'AddResult' and assign to a variable
def addResult = holder.getNodeValue("//ns1:AddResult")


//print the value of the result in the Output panel
log.info "The result value for integers is " + addResult


//Comparing the value to print 'Pass' or 'Fail'
if(addResult=="46")
{ log.info "Pass" }
else
{ log.info "fail"}
  1. 单击“执行”按钮触发执行。

  2. 脚本的输出显示在“输出”窗格中。它同时打印了转换值和最终结果(通过或失败)

  3. 显示“脚本声明已通过”的信息。单击确定。

注意:只要脚本在语法上是正确的,最终的“信息”弹出窗口将始终显示消息“脚本声明已通过”。它与脚本中的断言无关。

点击确定

步骤4:现在,“断言”选项卡显示了我们为此测试套件添加的所有断言以及“状态”和每一个断言。

步骤5:现在

  1. 从导航器树中选择测试套件

  2. 点击“运行”按钮

  3. 结果将显示整个测试套件。

SoapUI中是如何断言的呢(一)

使用CSV模块和Pandas在Python中读取和写入CSV文件

LeetCode 3题合集,砍瓜切菜刷三题不费劲

Git 整理 v1.0 | Git 操作整理-进阶篇

一篇文章教会你利用Python网络爬虫获取电影天堂视频下载链接

python全栈测试社区  

长按左侧二维码,识别关注

欢迎将文章分享到朋友圈
如需转载,请在后台回复“转载”获取授权

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件测试test

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值