lr使用soap协议,来对webservice接口进行测试
实际项目中基于WSDL来测试WebService的情况并不多,WSDL并不是WebService测试的最佳选择。 最主要的原因还是因为WSDL文档过于复杂。
在案例(天气预报WebService服务)中,WeatherWebService虽然只包含5个接口,但是其WSDL对应的XML文档多达近500行;
而实际项目中,被测系统往往包含上百个WebService接口,其WSDL文档的规模可想而知。
而且,WSDL文档包含的信息过于全面,其中大部分信息对于WebService测试是没有必要的。
虽然采用LoadRunner导入WSDL后可以清晰地看见所有接口函数,但是每次都要在上百个接口中选择被测接口也是一件很麻烦的事情。
特别是对WebService进行性能测试时,往往只需要选择少数典型的接口。 因此更换的方法就是采用“soap”协议来进行。
1、天气接口:
将soap1.1的报文保存到本地,为:xxx.xml文件格式
2、lr内导入:
3、点击ok后,会自动返回脚本页面,并可见已自动生成了脚本:soap_request函数
4、此时可将上文中的string修改为具体城市:
5、然后再在“Run-time Settings”中打开日志“Extended log”, 勾选“Parameter substitution”和“Data returned by server”。
运行脚本后,查看“Replay Log”(此时可见界面运行的回放的结果log)
6、结果可能会乱码或者结果内容不一致, 从开始的soap报文中的Content-Type信息可知,请求报文与响应报文的编码都是显示的是UTF-8。因此问题是不是由于LoadRunner脚本中的编码不为UTF-8格式导致的,从而使得脚本中的设置的汉字theCityName不被识别。 对LR脚本中需传送的城市汉字进行编码转换,即将脚本中的汉字字符转换为UTF-8的编码格式。
7、此时可见基本可实现成功调用 (注:过程中会遇到很多的问题,但是根据具体报错,慢慢找问题所在)