简介
本文描述如何创建soapUI应用程序程序员建立接口(API)请求和如何创建soapUI测试案例在自动化API的测试步骤的环路请求到Quantum策略套件(QPS)。
在读用户ID文件然后的此条款implementa测试步骤的示例soapUI测试案例创建并且发送querySubscriberRequst对QPS。
创建soapUI项目
在您开始此步骤前,请安装在您的桌面的soapUI应用程序。您能下载从www.soapui.org的soapUI安装可执行。
在您创建API请求或测试案例前您必须首先创建soapUI项目。您需要网站服务描述语言(WSDL)文件和XML模式说明(XSD)文件为了创建项目。WSDL指定支持的API。您能从QPS通常获取WSDL和XSD,当您从负载平衡器时(LB)运行这些命令:
- wget http://lbvip01:8080/ua/wsdl/UnifiedApi.wsdl
- wget http://lbvip01:8080/ua/wsdl/UnifiedApi.xsd
存储WSDL和XSD在同一个目录在您计划运行soapUI应用程序的桌面。
完成这些步骤为了创建soapUI项目:
- 从soapUI窗口选择File>新建的soapUI项目:

- 在新的soapUI项目窗口请在项目Name字段输入一名称对于项目并且输入WSDL文件在初始WSDL/WADL字段存储的位置。完成后单击 OK。

创建soapUI API请求
完成这些步骤为了创建soapUI API请求:
- 展开您创建为了发现API的soapUI项目。您能也展开其中一API为了发现请求。
在本例中, querySubscriberRequest展开:

- 打开请求为了发现与形成查询的XML的请求窗口。在请求窗口请编辑http:// IP地址到IP地址和端口。这通常是您要发送请求的lbvip01 IP地址和端口,当此示例显示:

- 修改XML的字段与您在您的请求要发送的数据。在本例中,请求querySubscriberRequest。修改您要查询和设置showDetailedInformatin到错误的用户的用户ID :

- 点击绿色Run按钮在请求窗口顶部为了运行查询。
创建soapUI测试案例
此步骤解释如何创建能自动化的测试套件,当API发送对QPS时。
在此示例程序测试套件在用户ID列表在querySubscriberRequest循环然后使用发送对QPS的那些用户ID。用户ID列表是其中每一在呼叫subid.txt的文本文件的单个线路。
完成这些步骤为了创建测试套件:
- 在soapUI项目您已创建,创建新的测试套件。用鼠标右键单击在soapUI并且选择新的TestSuite。

- 用鼠标右键单击测试套件并且选择新的测试个案。

- 用鼠标右键单击测试案例并且选择添加步骤>时髦脚本为了添加一个时髦脚本测试步骤。给出它数据源:

- 在数据源文件中请粘贴此代码。此代码读文件C :包含在每条线路的用户ID的/subid.txt :
import com.eviware.soapui.support.XmlHolder def myTestCase = context.testCase
def counter,next,previous,sizeFile tickerEnumFile = new File("C:/subid.txt") //subscriber
IDs sepearted by new line (CR). List lines = tickerEnumFile.readLines() size =
lines.size.toInteger() propTestStep = myTestCase.getTestStepByName("Property - Looper")
// get the Property TestStep propTestStep.setPropertyValue("Total", size.toString())
counter = propTestStep.getPropertyValue("Count").toString() counter= counter.toInteger()
next = (counter > size-2? 0: counter+1) tempValue = lines[counter]
propTestStep.setPropertyValue("Value", tempValue) propTestStep.setPropertyValue
("Count", next.toString()) next++ log.info "Reading line : ${(counter+1)} /
$lines.size"propTestStep.setPropertyValue("Next", next.toString()) log.info
"Value '$tempValue' -- updated in $propTestStep.name" if (counter == size-1) {
propTestStep.setPropertyValue("StopLoop", "T") log.info "Setting the stoploop property now..."}
else if (counter==0) { def runner = new com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner
(testRunner.testCase, null) propTestStep.setPropertyValue("StopLoop", "F") } else{
propTestStep.setPropertyValue("StopLoop", "F") }
- 用鼠标右键单击在测试步骤并且选择添加步骤>Properties为了添加属性测试步骤和命名它属性-尺蠖。

- 添加尺蠖测试步骤的这些用户定义的属性:
- 托塔尔
- 值-在我们的示例中此暂挂从文件用户ID读的用户ID
- 计数
- 其次
- StopLoop

- 用鼠标右键单击在测试步骤并且选择添加步骤> TestRequest为了添加一个Test请求测试步骤和选择您要调用的请求:

在本例中, querySubscriberRequest使用。

- 在请求,扩展代码替换什么的字段值您查询。在本例中的?SubscriberId= ?在querySubscriberRequest用扩展代码$ {属性替换- Looper#Value} (soap_test_req_expansion_code) :

属性-尺蠖是属性以前创建的TestStep的名称,并且值对当前用户ID负读从用户ID文件。
- 用鼠标右键单击在测试步骤并且选择添加步骤>时髦脚本并且命名它数据环路:

- 粘贴在时髦脚本数据环路的此代码:
def myTestCase = context.testCase
def runner
propTestStep = myTestCase.getTestStepByName("Property - Looper")
endLoop = propTestStep.getPropertyValue("StopLoop").toString()
if (endLoop.toString() == "T" || endLoop.toString()=="True"
|| endLoop.toString()=="true")
{
log.info ("Exit Groovy Data Source Looper")
assert true
}
else
{
testRunner.gotoStepByName("Groovy Script - DataSource") //go to the DataSource
}
- 在此示例程序,每条环路之间的1000毫秒延迟被添加。此步骤是可选的。
使用延迟当前有五个测试步骤:

- 点击绿色Run按钮为了运行在测试个案窗口的五个测试步骤。