深入解析Web Services
SOA,面向服务器建构,是一款架构,这几年虽然没前几年那么流行,但是还是有很多企业在用,而Web Services是目前适合做SOA的主要技术之一,通过使用Web Services,应用程序可以对外发布服务,或者提供某项功能,Web Services 采用标准的XML报文,并使用SOAP传输数据
1、认识Web Services
Web Service 是简单可交互操作的分布式应用程序的新平台,它通过一系列标准和协议来保证程序之间的动态连接,其中最基本的协议包括SOAP、WSDL、UUDI
2、Web_service_call模式开发Web Services脚本
2.1新建Web Service脚本
先new一个web service 脚本,点击Create
然后进入Web Services脚本开发界面
然后点击“Manage Services”按钮,进入Web Services服务界面(此处主要不要把光标放到我上面这个图的位置,那样会报错的,函数体里面即“{}”里面)
然后输入我们自己准备好的免费的天气预报的WSDL地址:http://www.webservicex.net/globalweather.asmx?wsdl,然后点击导入“Import”按钮
各参数含义,见下图
Service name:表示Web服务的名称
WSDL:列出来wsdl的原始地址,最后一次更新的时间,同事也可以进行实时更新
Address:列出来web services服务的调用地址,选中“Override address”可以重写调用地址
Toolkit:关联的工具包
进入“Operations”标签页,如下图
改标签页列出了该服务的所有的接口,包括接口名称、端口名称、以及是否在脚本中使用等
进入“Connection Settings”标签页,如下图
该标签页主要是进行用户授权及代理配置,可以根据实际情况进行合理配置
点击“UDDI Data”标签页,如下图
UUDI是一种目录服务,可以使用它对Web Services进行注册和搜索,一般情况下在性能测试过程中,我们回去企鹅知道Web服务的位置,因此很少使用UDDI服务
然后点击ok按钮,保存设置
然后点击“Add Service Call”按钮,进入Web Services服务页面,依次选择"GetWeather"接口,该接口主要用户获取各地区的天气情况,然后依次点击CityName->Value,且在Value中填入城市:Shenzhen,
依次选择CountryName->Value,并在Value中填入:China
选择依次选择GetWeatherReslut->Save returned value in para,然后点击OK,LoadRunner将自动生成测试脚本
脚本如下图所示
源码脚本如下:
Action() { return 0; web_service_call( "StepName=GetWeather_101", "SOAPMethod=GlobalWeather|GlobalWeatherSoap|GetWeather", "ResponseParam=response", "Service=GlobalWeather", "ExpectedResponse=SoapResult", "Snapshot=t1503660439.inf", BEGIN_ARGUMENTS, "CityName=Shenzhen", "CountryName=China", END_ARGUMENTS, BEGIN_RESULT, "GetWeatherResult=Param_GetWeatherResult", END_RESULT, LAST); }