一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“web service接口测试”。
一、WSDL协议
WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问
一个 WSDL 文档的主要结构是类似这样的:
<definitions>
<types>
definition of types........
</types>
<message>
definition of a message....
</message>
<portType>
definition of a port.......
</portType>
<binding>
definition of a binding....
</binding>
</definitions>
下面是一个简单的WSDL的实例
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
二、web service接口测试的步骤
WSDL接口测试的步骤:
1.选择web service协议新增一个脚本
2.在manage service中导入要测试的服务,通常有两种方式:一是URL地址;二是导入文件。需要注意的是如果我们使用URL方式,那么URL地址后应该要加"?wsdl",如果是导文件那么文件的后缀名为.wsdl,也就是说我们测试的对象其实是一人wsdl文件。
3.添加add service call,添加我们要测试的方法,设置好我们要测试的数据,即输入数据
4.对测试数据进行参数化,参数化的方法就我们以前参数化的方法
5.检查返回的结果最否正确,使用的函数为strstr
if(strstr(lr_eval_string("{response}"),"hello") == NULL)
{
lr_output_message("FAIL");
}
else
{
lr_output_message("PASS");
}
三、web_service_call函数
web_service_call函数语法:
int web_service_call( const char *StepName, [URL,] ExpectedResponse, specifications>,[BEGIN_ARGUMENTS,Arguments,END_ARGUMENTS,] [Send Attachments,][BEGIN_RESULT, Results, END_RESULT,] [Receive Attachments, ] LAST );
1.StepName
步骤名
2.SOAPMethod
"SOAPMethod=EnglishChinese|EnglishChineseSoap|TranslatorString",
服务器名|端口名|操作方法
3.ResponseParam
返回的响应结果所保存的参数名
4.Service
服务器名
5.ExpectedResponse
表示响应结果或者说返回出来的结果
"ExpectedResponse=SoapResult"
6.Arguments
表示调用这个方法所输入的参数
BEGIN_Arguments
"Name1=Value1",
"Name2=Value2",
END_Arguments
7.RESULT
表示输入出的结果或者将输出结果保存在某个变量中
BEGIN_RESULT,
"输出项=变量名",
"TranslatorStringResult/*[1]=Param_string",
END_RESULT,
8.ATTACHMENT_ADD
表示上传附件,添加附件的方法有两种:fifilename、paramname
ATTACHMENT_ADD, "FileName=file1.txt", "ContentType = text/plain", "ID=TXT1",
ATTACHMENT_ADD, "ParamName=paramMyAttachment", "ContentType = image/gif",
9.Receive Attachments
表示下载文件或者接受文件,接受文件有两种:ATTACHMENT_SAVE_BY_INDEX按索引号来接受文件、ATTACHMENT_SAVE_ALL接受所有文件。
ATTACHMENT_SAVE_BY_INDEX, "Index=1", "ParamName=myNameParam1"
ATTACHMENT_SAVE_ALL, "ParamNamePrefix=myParam"