菁英科技(卓目鸟学苑)- 专注软件测试菁英教育

标题: web自动化测试-HTTP层面的Web Service自动化测试(1) [打印本页]

作者: RHM    时间: 2020-5-19 09:31
标题: web自动化测试-HTTP层面的Web Service自动化测试(1)
前言
我们之前在测试web service的时候尝试过多种方法:比如使用SoapUI;使用本地代理类编程等。前者不太方便做自动化,后者是从SOAP协议层面进行测试,数据组织不太方便,测试程序相对复杂,并且扩展性不好。
SOAP协议大多使用HTTP绑定,我们发现使用HTTP直接向web service server发送数据包可以做到接口无关,不同的接口对于HTTP请求来说只是包的内容和目标url不同。这样可以将修改测试程序的工作转变为构造数据的工作,一方面在数据量较小的情况下可以减小测试准备和执行时间,另一方面方便测试集成到持续集成环境中。
SOAP层面的Web Service自动化测试
背景介绍
Web Service 是一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。Web Service通过WSDL(Web Services Description Language)文件发布。
SOAP是简单对象访问协议,定义了一种跨平台的分布式系统通信协议。SOAP需要绑定到更低层次的传输协议(比如HTTP、RMI、JMS)等。最常用的是HTTP绑定。大多数的Web Service实现是借助SOAP协议,因而通常的Web Service测试方法都是在SOAP协议层面进行测试。在SOAP层面上,每一个请求的数据包格式都是固定的,不同的接口使用不同格式的数据包,因而测试的时候需要针对不同的接口有不同的数据准备和测试执行的方法。
现有的SOAP层面的Web Service自动化测试方法通常是使用工具生成本地代理类,通过编程调用本地代理类实现自动化。这种测试方法数据构造简单,但是测试程序稍复杂,扩展性不强。
数据组织
SOAP层面的自动化测试的数据组织就是准备本地类的参数和返回值。
1. 输入数据
为了更清楚的了解输入数据,这里给出了SoapUI的两张图:
(, 下载次数: 146)
1 接口一输入
(, 下载次数: 174)
2 接口二输入

这两幅图显示了SOAP层面的输入数据。AuthHeader是SOAP包的header,是所有接口共有的数据结构;getAccountInfoRequest和getChangedIdRequest是SOAP包的body,各自有不同的字段,type和startTime是真正需要针对每个接口准备的数据。
2. 期望输出
同样这里给出了两张SOAP的图:
(, 下载次数: 163)
3 接口一输出







欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/) Powered by Discuz! X3.4