接口测试自动化总结_第1页
接口测试自动化总结_第2页
接口测试自动化总结_第3页
接口测试自动化总结_第4页
接口测试自动化总结_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、接口自动化测试设计文档管理信息表主题接口自动化测试版本TIBCO_Adapter_V1.0内容设计关键字接口参考文档单元测试创建时间2008-03-21创建人冯昌建职位SDETest主管最新发布日期2008-04-02(一)测试背景概述新项目结构大致是:即产品1和产品2为待测试对象,抽象出来可以归结为【http json协议接口测试】与【http web功能测试】。其中【http web功能测试】针对未曾接触的一种数据库,还包含了大量数据库和SQL级别的专有操作测试内容,此处不予讨论。测试对象无论是由C/C+还是Java还是JS/Html实现,对于协议测试和功能测试(白盒测试和单元测试另当别论

2、),都不需要深入了解该语言,熟悉任一种高级语言(最好还有一种脚本语言)+自动化思维意识+快速学习能力,完全能实施测试自动化策略。网上查了一下:JSON(JavascriptObjectNotation)是一种轻量级的数据交换语言,以文字为基础,且易于让人阅读。常应用于http通信和数据传输,应用如Apache开源搜索引擎ElasticSearch等。JSON建构有两种结构:1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),记录(record),结构(struct),字典(dictionary),哈希表(

3、hashtable),有键列表(keyed list),或者关联数组(associative array)。2.值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。* Linux C/C+单元测试和覆盖率统计参见:即使对上面一无所知,先来分析一下【http json协议接口】的特点。(二)测试需求分析1.      Web页面(即产品2)HTTP请求数据包(post/put)格式如: POST -d     &qu

4、ot;task":"login","token":"ae873897a0a9a2afb9bb12a49c4237744a82ea77049df67c9b58d7acc5c0c7527926f07dd201b6aa","id":"admin","password":“123456","clientver":"8.4"  POST /cm_api -d"task":"st

5、artinfo","token":"ae873897a0a9a2af11077f40cf303d7406ec4d40b90b3a041b8a4edfd63d0fbe7926f07dd201b6aa" 2.  Web Service(即产品1)响应数据包格式,除以下其余未知:(1)格式错误,不响应;(http json协议层判定)(2) token(每个用户每次登录时取得,唯一)错误或者连接、数据库等其他问题,响应 status: failure(3)token正确,其他正确,响应 status:

6、 success如:  "_EXEC_TIME" : "1 ms",   "note" : "none",  "status" : "success",  "task" : "authenticate",  “token” : “ae873897a0a9a2afdb676eefe4e864e2b0e3abb07cd73cf0944e77d

7、6c792b1aa7926f07dd201b6aa”   登录成功,响应 status: success,并取得token值   "note" : "Request is rejected due to invalid token. Pleasereconnect.",  "status" : "failure",  “task” : “startinfo”  token错误,响应 st

8、atus: failure 3.       接口会扩展,增加或改变(数百个)。  4.       几乎所有接口有严格执行顺序(如顺序执行:login-> optimized->stopdb->logout),login成功获取该用户本次动态token,后面每个接口请求包使用此token。动态token,即测试数据和结果都不是固定的,故Fitnesse等一些接口测试工具难以实现。 5.   

9、60;   用例中可含自定义的任意参数变量,如针对Linux:$DBNAME=/home/DBNAME,$DBNAME_DATABASES=/home/DBNAME /databases ,;Windows:$DBNAME=C:DBNAME, $DBNAME_DATABASES =C:DBNAME databases , 6.       成本1(=不熟悉à找测试工具à学习测试工具à执行测试) >成本2(=自己花部分时间写个测试程序或工具灵活可控:生

10、成自定义测试用例和判定结果、报告) 7.      最后解决方案确定:自己花部分时间写个测试程序或工具灵活可控:生成自定义测试用例和判定结果、报告(三)设计和技术细节准备1.      测试用例和测试结果生成,我希望按以下数据格式生成文件,固定分隔符分割(便于excel打开),token错误响应 status: failure则Pass,token正确响应status:success则Pass,Fail的记录status手工核查(扩展:每条接口用例设定一个

11、字段表示期望值,检查收到期望值则Pass,收不到则Fail)。Case-ID:CMS-145Interface Name:updateattributePreconditions:correcttoken: ae873897a0a9a2afd540113d7e03001469caacde0c9322491cd95e57cef94f427926f07dd201b6aaStep:curl-POST -d "task":"updateattribute","token":"ae873897a0a9a2afd540113d7e030

12、01469caacde0c9322491cd95e57cef94f427926f07dd201b6aa","dbname":"demodb","classname":"athlete"Result:  "_EXEC_TIME": "11 ms",   "note" : "Failed to connect to database server, demodb, on the following h

13、ost(s): localhost:localhost",   "status" : "failure",   "task" : "updateattribute"P/F:FRemark:status:"failure" 2.      测试输入数据(开发维护):数据包文件列表(根据接口名字命名,增加一个接口相应增加一个)接口顺序文件json_list(接口名的执行顺序列表,根

14、据此文件中接口顺序执行) 3.      动态token获取:longin 响应保存tokenà读取jsonlist保存列表à根据jsonlist顺序读取对应接口名数据包文件,并替换token字段值à请求和响应à检查响应结果的状态和其他内容(断言) 4.  两种方式实现(C#):  方式一:封装开源Ssh库登录一台Linux调用Curl命令,记录整个过程并分析处理,生成测试用例和测试结果文件,人工查看和整理。(涉及平台环节更多,更锻炼。

15、)  方式二:利用.Net丰富的Web类库和其他库文件实现。(更简单,技术积累熟练程度,时间分钟级到小时级即可完成。)(四)开发实施和自测1.      SSH方式远程登录Linux2.       执行流程举例3.       保存正确的token值4.       几个读写文件流5.     &

16、#160; 顺序读取、拼接、发送、接收、判断处理、记录6.       配置参数项:json请求地址、cci请求地址、自定义参数变量(变长)、用例路径、是否循环(长时间稳定性测试)(五)结果演示1.             执行效果(可配置循环长时间测试)2.       输入输出生成结果3.    【新版本检测>

17、;新版本部署>执行测试工具】【整理查看测试结果>校验Fail问题>提交bug】  其中,“新版本检测à新版本部署à执行测试工具”流程可以通过一些测试框架(如staf/stax,或其他,或自己灵活开发定制等)实现全自动(包括版本通知和测试结果通知),可实现手工时间集中到“整理查看测试结果à校验Fail问题à提交bug”流程。 附:通用自动化测试工具效果1. 主体框架实现特定功能,高级语言完成,并开放大量实用API,且不断增加和完善2.  嵌套或封装一种或多种脚本语言解析器,能够动态执行测试用例脚本,对Windows窗体、Web、代码、接口、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论