现在您需要做的第一件事就是使您的数据池正常工作。
- 您可以点击 Test Element Details 下 Common Options 标签里的 Add Datapool 为您的测试套件启动数据池。
- 打开 Import Datapool 对话框(查看图8)。
图8:Import Datapool 对话框
- 点击您想要是用的数据池,然后选择 Select 将其启动。然后您可以查看 Common Options 下的数据池和变量列表(图9)。
图9:Test Element Details 下的数据池信息列表
下一步,您需要使用置换关联值。
- 在 Test Contents 目录树中,选择 doSpellingSuggestion ,然后选择 Details 标签。
- 选择 片语 元素。在这里您可以右键点击 Value 域,然后选择 doSpellingSuggestion datap...的 Substitute From > "片语" 变量。注意 Substitute from 菜单列出的元素是基于和测试关联的数据池而动态产生的(图10)。
图10:选择一个置换
在您建立了置换后,您会看到值会变成绿色。如果您解除对片语元素的定位,您仍然会看到它被高亮显示。(查看图11。)这些都是显示它们已经被置换的指示器。这使您能够在调试和更新您的测试时,快速的找到这些置换值。
图11:高亮显示的置换元素
- 下一步,您需要根据数据池的返回值来更新确认点以作应答。您可以通过选择 Equal Verification Point,找到 Detailed 标签中的返回元素,再次建立一个置换来完成这个操作。无论怎样,这次选择 doSpellingSuggestion datap... 的返回变量。
如果您现在就运行测试,那么测试会使用您数据池中的第一个值。在这个练习的设置过程中,这个值是 phrasesWithSuggestions 等价类中的 "IBM Rational Perforlmance Tester"。数据读取正确并且确认点通过。列表1和列表2中的代码同是来自于一个单用户测试的测试日志。
列表1:Web服务调用代码
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <rpcns:doSpellingSuggestion xmlns:rpcns="urn:GoogleSearch" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <key xsi:type="xsd:string">00000000000000000000000000000000</key> <phrase xsi:type="xsd:string">IBM Rational Perforlmance Tester</phrase> </rpcns:doSpellingSuggestion> </soapenv:Body> </soapenv:Envelope> |
列表2:确认点代码
<Envelope> <Body> <doSpellingSuggestionResponse> <return>IBM Rational Performance Tester</return> </doSpellingSuggestionResponse> </Body> </Envelope> |
下一步,设置您的测试循环测试所有数据。最容易的实现方法是添加一个循环:
- 选择 Test Contents 树中的 doSpellingSuggestion(查看图12),然后点击Insert > Loop 按钮。
图12:在您的测试套件中添加一个循环
- 您会被提示是否想要将选择的条目移动到循环中。点击 Yes 按钮。
- 循环下的 Test Element Details(图13),输入数据池值的数量(这里是6个)。
图13:循环的 Test Element Details
- 保存后执行测试套件。
如果您查看测试运行时的 Return Equal Verification Points 报告(图14),您会看到有6个确认点被执行,并且全部通过。
图14:Return Equal Verification Points 报告
如果您查看测试日志中 Events 树的 Web 服务调用请求和回应,您会看到所有的数据池记录都被正确的调用。如果您想要移除一个置换,那么您只需要右键点击并选择 Remove Substitution 按钮。
一个 Web 服务请求可能包含先前请求响应中返回的数据值。例如,假象在一个过去的商业服务公司的项目中,第三方合作伙伴使用一个 Web 服务请求您的系统的信息。对请求的响应是一个简单的确认,它包含一个稍后将要发送的响应的引用号。您需要使用这个引用号来手机第二个响应的信息。因此,在您的测试中,对于每一个您启动的会话来说,都有第一个响应和第二个请求之间数据相关的两个请求 XML 文件和两个响应 XML 文件。
在 Rational Tester for SOA Quality 中,您可以使用一个域的引用来执行这类的操作。在一个 Web 服务测试中,请求中的数据在哪里,由先前请求的响应中包含的数据决定,请求数据被它所依靠的响应数据所置换。这个响应和请求数据的内部标签的条件是数据相关性。
一个域的引用是测试中的一个值,它可以被测试中的一个并发值所使用。当测试码生成程序检测到一个需要被先前值置换掉的请求值时,它会指定早一些到来的值作为引用,并将并发的请求值和引用关联起来。
提示:
您可以手动将测试中的两个值关联或者解除已经存在的关联性。
让我们看一个使用 doSpellingSuggestion 的例子。您将会在第一个请求中查找到一个拼写错误的单词,然后您需要响应这个请求,并将它注入另一个 doSpellingSuggestion 调用,并且要验证没有任何建议被返回。这个例子有一些冗余,但是它阐明了我在一个真实项目中遇到的一个情况。
- 建立一个新的测试套件,覆盖第一个测试套件的 doSpellingSuggestion 调用。粘贴调用两次,它的结构应该和图15类似。
图15:建立第二个 doSpellingSuggestion 调用
- 在第一个 doSpellingSuggestion 调用中,选择 Test Contents 树的响应,然后选择 Details 标签。
- 选择返回元素。
- 右键点击 Value 域,然后选择 Create Field Reference。
注意,元素变成了蓝色,Value 域的背景颜色发生了改变,一些蓝色的箭头图标出现在了响应节点的 Test Contents 树中(图16)。这种情况显示了一个已经定义的域引用。
图16:定义一个域的引用的指示器
- 在第二个 doSpellingSuggestion 调用中,选择 Test Contents 中的请求,然后选择 Details 标签。
- 选择片语元素。
- 右键点击 Value 域。然后选择 Substitute From > /Envelope/Body/doSpellingSuggestionResponse/return。
注意,正如同置换一样,域引用同样也是动态构成的。这一次,片语元素变成了紫色,Value 域的文本被紫色高亮显示,一些绿色的箭头图标出现在了请求节点的 Test Contents 树中(图17)。这表示测试正在使用一个域的引用。
图17:使用一个域的引用的指示器
- 请确保您选择了第二个调用上的 Equal Verification Point ,并且移除了值(因为引用值的请求的拼写都应该正确)。
如果现在您再次运行测试,两个校验点都会通过,如果查看测试日志中的细节信息,所有的使用值都在每一个请求和响应 XML 中。如果您想要移除一个域的引用,右键点击并选择 Remove Field Reference。
这篇文章介绍了 Rational Tester for SOA Quality 动态数据的一些基本内容。按照您的需要任意混合搭配置换和引用。如果您想要学习更多关于在 Web 服务测试中使用动态数据的内容,请访问下面资源部分的文章,课程和站点列表。
文章来源于领测软件测试网 https://www.ltesting.net/