web service接口测试工具选型
1 简介
1.1 范围
1.2 目的
本文档用于指导测试部进行接口测试。
2013-03-11磁针石
#承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.com qq 37391319 博客:http://blog.csdn.net/oychw
#版权所有,转载刊登请来函联系
# 深圳测试自动化python项目接单群113938272深圳广州软件测试开发 6089740
#深圳地摊群 66250781武冈洞口城步新宁乡情群49494279
#自动化测试和python群组: http://groups.google.com/group/automation_testing_python
本文网盘下载地址:http://www.kuaipan.cn/file/id_141584322762145478.htm
1.3 缩略语
| 
 缩略语  | 
 全称  | 
 说明  | 
| 
 SOAP  | 
 Simple Object Access Protocol  | 
|
| 
 WSDL  | 
 Web Services Description Language  | 
|
| 
 ATI  | 
 Automation Testing Institute  | 
|
1.4 术语
2 概述
Web service是亚信和公司交互的3大接口之一,涵盖了亚信和网厅以及3Gmate的主要接口。由于公司的开发也无法透视亚信的代码,为此测试有必要对亚信和公司交互的web service接口进行测试。
亚信的Web service基于SOAP。基于成本因素,我们不考虑商业工具。根据ATI的建议,有三大主流测试开源工具。排名第一的SoapUI和排名第二的JMeter以及排名第三的Grinder。同时基于我们的python测试平台,又考察了python相关模块。
评估依据:
1. 功能:能实现正确的web service接口测试。占比40%。
2. 脚本能力:支持良好的结构控制,比如for,if等。占比20%。
3. 扩展性:能python自动化平台能对接。占比15%。
4. 易用性:易学易用。占比15%。
5. 其他:占用率,服务支持,历史因素,性能测试等。占比10%。
3 SoapUI
下面是SoapUI的自我介绍。
SoapUI is a free and open source cross-platformFunctional Testing solution. With an easy-to-use graphical interface, andenterprise-class features, SoapUI allows you to easily and rapidly create andexecute automated functional, regression, compliance, and load tests. In asingle test environment, SoapUI provides complete test coverage and supportsall the standard protocols and technologies. There are simply no limits to whatyou can do with your tests. Meet SoapUI, the world's most complete testingtool!
SoapUI开启之后,加载WSDL文件,就可以修改xml(中间的大窗口)为你想要的值,给服务器端发送请求,响应会很方便地展示在右侧的大窗口上。功能得满分40。
SoapUI的开源版本,不支持脚本开发。脚本能力得分0。
SoapUI的扩展力一般,支持XML,通过python的lxml可以吃力的和python自动化测试平台对接。
扩展性得分5。
SoapUI的界面友好,易学易用,易用性得分15。
其他:SoapUI的占有率比较高,亚信也在使用这个工具;社区支援比较广泛;但性能测试参数无法实现。另外SoapUI有近200M,比较庞大,容易拖慢机器。得分6。
总分:66
4 Jmeter
下面是JMeter的自我介绍。
The ApacheJMeter™ desktop application is open source software, a 100% pure Javaapplication designed to load test functional behavior and measure performance.It was originally designed for testing Web Applications but has since expandedto other test functions.
Jemeter的操作和SoapUI类似。功能得满分40。
Jemeter只支持简单脚本开发,无法实现复杂的数据流程,调试能力一般,脚本能力得分5。
Jemeter的扩展力一般,支持XML,通过python的lxml可以吃力的和python自动化测试平台对接。
扩展性得分5。
Jemeter的界面友好,易学易用,安装不如SoapUI简单,易用性得分12。
其他:Jemeter在性能测试有非凡的能力,但是参数化有点吃力,得分8。
总分:70
5 Grinder
下面是Grinder的自我介绍。
The Grinder is a JavaTMload testing framework that makes it easy to run a distributed test using manyload injector machines. It is freely available under a BSD-style open-sourcelicense.
Grinder要书写脚本,功能部分满分40。
Grinder支持python脚本开发,控制结构强大,调试能力一般,脚本能力得分15。
Grinder的扩展力一般,支持XML,python和python自动化平台对接。扩展性得分15。
Grinder的界面友好,安装配置略多,脚本上手有一定难度,必须通过类封装,易用性得分6。
其他:Grinder在性能测试有非凡的能力,输出结果一般,得分8。
总分:84
6 Suds
Suds是python的一个SOAP外部模块。下面是Suds的自我介绍。
Suds is a lightweight SOAPpython client for consuming Web Services.
Features
No class generation
Provides an object API.
Reads wsdl at runtime for encoding/decoding
Supports the following SOAP binding styles:
Document/Literal
RPC/Literal
RPC/Encoded
Provides objectification of WSDL defined:
Types (objects)
Enumerations
Service and type objects provide inspectionvia print
Supports unicode
HTTP authentication
Basic WS-Security
Suds的操作和Grinder类似。功能得满分40。
Suds支持完整脚本开发,调试能力强大,脚本能力得分20。
Suds的扩展力强大,支持XML, python和python自动化测试平台对接。
扩展性得分15。
Suds的界面是python的编辑器,对初学者有一定难度,安装不如SoapUI简单,易用性得分9。
其他:Suds不具备性能测试功能,但是可以和thread,multiprocess等实现性能测试,得分6。
总分:90
Suds的脚本开发和XML类似,支持结构式程序开发,看起来比Grinder要简洁。
脚本开发的步骤如下:
1, 导入suds库
2, 连接服务器
3, 定义要调用函数的参数
4, 发送请求
5, 处理结果
脚本示例:
from suds.client import Client
con =Client('http://192.168.1.8:6030/InfoSystem/ws/imsintf_iImsWrapQueryService?wsdl')
#con =Client('http://112.95.149.76:6030/InfoSystem/ws/imsintf_iImsWrapQueryService?wsdl')
sOper =con.factory.create('sOperInfo')
print sOper
sOper.so_nbr = '808010007'
sOper.busi_code = '6023'
sOper.so_nbr = '808010007'
sOper.so_mode = '1'
sOper.so_date = '2252-06-0714:11:11'
sOper.charge_flag = '0'
sOper.notify_flag = '1'
queryTypeList =con.factory.create('queryTypeList')
print queryTypeList
queryType =con.factory.create('queryType')
queryType.query_type = '12'
queryTypeList.queryType_Item.append(queryType)
queryParam =con.factory.create('sQueryParam')
queryParam.phone_id = '54321@公司.com'
queryParam.query_level = '1'
result =con.service.do_query(sOper, queryTypeList, queryParam)
print "*" * 80
print result
为了和python自动化平台对接,需要封装suds库,通过平台将用例管理起来。
7 其他
Python还有其他很多模块支持SOAP。
SOAPpy、Soapbox、 PySimpleSOAP,Pyws等因为用户不多而没有采用。
Zsi、Elementsoap等因为多年没有人更新而没有采用。
Osa因为无法访问而没有采用。
Requests和urllib2等因为实现相对负责而没有采用。
8 结论
Suda为主兼顾SoapUI。
| 
 工具名称  | 
 功能40分  | 
 脚本能力20分  | 
 扩展性15分  | 
 易用性15分  | 
 其他10分  | 
 总分  | 
| 
 SoapUI  | 
||||||
| 
 Jemeter  | 
||||||
| 
 Grinder  | 
||||||
| 
 Suds  | 
SoapUI的开源版本和SoapUI由于不具备完整的脚本能力,不能进行大规模测试。
可见Suds和Grinder基本上可以满足我们的需求。但是由于亚信现在使用SoapUI,他们的用例是xml格式描述的,不过亚信内部python使用很广泛。为此为了交流方便,经和亚信杨工确认,准备同时使用Suda为主兼顾SoapUI的方法进行测试。
通过开发suds的封装库,实现自动测试边界值等功能,并通过python自动化测试平台进行管理。
web service接口测试工具选型的更多相关文章
- Web Service 接口测试
		
Web Service 接口测试 Web service 概念 Web service使用与平台和编程语言无关的方式进行通讯的一项技术, web service 是一个接口, 他描述了一组可以在网络上 ...
 - 【转】Web Service单元测试工具实例介绍之SoapUI
		
转自:http://blog.csdn.net/oracle_microsoft/article/details/5689585 SoapUI 是当前比较简单实用的开源Web Service 测试工具 ...
 - Web Service 性能测试工具比较
		
背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力(请求数/秒).以微信服务器为例,每个用户用独立的登录token,做各种操作, ...
 - Web Service单元测试工具实例介绍之SoapUI
		
原文 Web Service单元测试工具实例介绍之SoapUI SoapUI是当前比较简单实用的开源Web Service测试工具,提供桌面应用程序和IDE插件程序两种使用方式.能够快速构建项目和组 ...
 - 性能测试工具 Web Service 性能测试工具比较
		
[转自]https://testerhome.com/topics/3003 背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力 ...
 - Web Service测试工具小汇
		
1..NET WebService Studio 这款工具出自微软内部,最大的优点是可视化很好,不用去看那些XML文件,WebService的基础内容就有XML,但是测试中Case过多,每次测试结果都 ...
 - 在SharePoint中无代码开发InfoPath应用: 一个测试Web Service的工具
		
这是这个系列的第一篇,介绍一个小工具,主要是用在Web Service测试的. 因为为了用一点高级的东西,就免不了和web service打交道. 你可以使用按照KB819267来修改web.conf ...
 - http接口和web service接口测试区别是什么?
		
1.web service有一套完整的协议标准,其中有soap协议,用来进行消息的传递. 2.soap请求是HTTP POST的一个专用版本,遵循一种特殊的xml消息格式 Content-type设置 ...
 - Web Api 接口测试工具:WebApiTestClient
		
前言:这两天在整WebApi的服务,由于调用方是Android客户端,Android开发人员也不懂C#语法,API里面的接口也不能直接给他们看,没办法,只有整个详细一点的文档呗.由于接口个数有点多,每 ...
 
随机推荐
- cocos2d-x学习日志(10) --射击游戏(喵星战争)
			
转载请标明:转载自[小枫栏目],博文链接:http://blog.csdn.net/rexuefengye/article/details/10553487 一.纵版射击游戏的特点 纵版射击游戏是一种 ...
 - Swift - 让StoryBoard设计视图,程序运行时都使用横屏形式
			
1,运行时横屏 将项目属性“General”->“DeviceOritentation”的Portrait复选框去掉 2,storyboard设计视图横屏 在storyboard中,单击中间界面 ...
 - Swift Swift语言Storyboard教程:第二部
			
本文由CocoaChina翻译小组@TurtleFromMars翻译自raywenderlich,原文:Storyboards Tutorial in Swift: Part 2 更新记录:该Stor ...
 - 【IUML】支持向量机SVM
			
从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...
 - wkhtmtopdf--高分辨率HTML转PDF(一)
			
原文:wkhtmtopdf--高分辨率HTML转PDF(一) 一.需求 这次工作中遇到一个需求,要求把网页转换为PDF,穷极了很多的方法,包括尝试了itextsharp来转换,虽然可以实现,但是分辨率 ...
 - EF中的事务处理的初步理解
			
http://yanwushu.byethost7.com/?p=87 1. EF对事务进行了封装:context的saveChange()是有事务性的. 2. 依赖多个不同的Context的操作(即 ...
 - fopen()惹的祸
			
读一个文件,刚开始只读“r” 打开,读数据,刚开始的一段数据还好,但只读了一小部分就读不到正确的数据了,后来反复的看自己的代码,比对文件的内容,纠结了一天了都,感觉什么都没写错啊.心里总认为是这个文 ...
 - uva 1510 - Neon Sign(计数)
			
题目链接:uva 1510 - Neon Sign 题目大意:给定n个点,随意三点不共线,而且两两点之间有一条线,给定线的颜色.问说有多少个三角形三边同色. 解题思路:对于每一个点.记录该点黑色边的数 ...
 - URAL1113(数学)
			
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1113 根据样例分析: 1.沙漠只有500公里或者更短,这时很简单,一次搞定. 2.沙漠6 ...
 - LDA主题模型学习笔记3.5:变分參数推导
			
如今来推导一下得到变分參数更新式的过程.这一部分是在论文的附录中,为避免陷入过多细节而影响总体理解.能够在刚開始学习LDA的时候先不关注求解细节.首先要把L写成关于γ,ϕ\gamma,\phi函数.依 ...