自动化测试开发实际应用系列(五)Socket应用协议测试自动化详解.docx

自动化测试开发实际应用系列(五)Socket应用协议测试自动化详解.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(一)测试背景概述之前在X公司参与测试的项目,整个结构如图所示:我负责第一层Linux服务器产品测试工作(红色标示部分),我到之前的测试流程为:1.? 数据库准备(远程Linux操作或者使用工具Toad/Navicat对多服务器的Oracle/MySQL测试数据增删改查)???? Linux下环境准备(远程Linux操作第一层服务器配置文件修改、进程启停、配置重载等)--》2.? 第二层部分测试环境准备(操作第二层数据库数据,远程登录服务器对第二层服务器配置文件修改、进程启停、数据重载等)--》3.? 启动第三层客户端测试相应功能--》4.? 缺陷跟踪管理(关于第一层)方式:100%手工测试职责:保证第一层Linux服务器相关产品的功能正确、性能良好。特点概述:1.? 每一层服务器都不是单体结构,都包含多个子层次多部分和多个数据库,可能都部署在多个不同的服务器上,层次之间可能一对多或多对多(断线自动重连)。2.? 其中,第二层服务器结构最为繁杂、处理的逻辑业务量最大。第一层服务器的全部功能通过与第二层服务器交互最终反映到第三层客户端的功能表现(线上用户直接接触),即第二层服务器的一部分逻辑业务量处理与第一层服务器交互和客户端对应的功能逻辑控制,具体比如账号、金钱交易、计费、活动、安全保障等专有功能业务系统的质量,为我们所负责的范围。3.? 第一层服务器和第二层服务器之间全部按照严格定义格式的一系列应用协议进行通信,协议及种类根据需求灵活多变(区分不同项目,可增删改),数据包未加密(私网),第二层服务器和第三层客户端之间也是按照严格的一系列协议通信,数据包加密(公网)。4.? 第一层服务器可能有多个不同的开发人员,第二层服务器是另外多个不同的开发人员,第三层客户端同样是多个不同的开发人员。5.? 所有代码对测试保密,大团队长开发周期产品(3年以上),代码量极为庞大繁杂(纯CPP百MB到GB级),环环相扣,代码规范不统一,无单元测试。(二)测试需求分析看到的问题:1.? 全手工方式测试。2.? 停留在测试表现层的功能。3.? 庞大复杂的结构,很多传统测试套路无法适应。4.? 发现Bug,需要各个层次的开发人员协同定位,是某个数据库数据错误、第一层服务器处理错误、第二层服务器处理错误、还是第三层客户端的问题,然后才能由相应人员更改Bug。想到的可突破点:1.? 测试流程方便化(测试辅助工具,可简化的手工操作)2.? 测试针对性深入化(Socket通信协议测试工具,定位第一层协议处理错误还是第二层协议处理错误,更加针对第一层服务器产品的质量,减少沟通成本和测试、开发的工作量,深入理解协议和发现最底层的错误,上升到越高层可能各层产生越多的问题。)3.? 测试流程自动化(自动化测试工具,控制逻辑的动态脚本语言支持,减少人力成本)?测试对象无论是由C/C++还是Java还是其他语言实现,对于协议测试(各种语言标准通用)和功能测试(白盒测试和单元测试另当别论),都不需要深入了解该语言,熟悉任一种高级语言(最好还有一种脚本语言)+ 自动化思维意识 + 快速学习能力,完全能实施测试自动化策略。Socket网络通信理论基础(详细参照/w565911788/article/details/8136323)TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示(该图出自[TCPIP])。图?36.1.?TCP/IP协议栈两台计算机通过TCP/IP协议通讯的过程如下所示(该图出自[TCPIP])。图?36.2.?TCP/IP通讯过程?传输层及其以下的机制由内核提供,应用层由用户进程提供,应用程序对通讯数据的含义进行解释,而传输层及其以下处理通讯的细节,将数据从一台计算机通过一定的路径发送到另一台计算机。应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示(该图出自[TCPIP])。图?36.3.?TCP/IP数据包的封装不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。(三)设计和技术细节准备(以虚拟的A应用协议为例)目的:使测试方便化深入化自动化。1.?协议测试设计关于第一层服务器和第二层服务器之间的协议,请求的数据包包括包头、包尾、包长度、固定标志位、特定字符串长度、特定字符串值等信息。返回对应严格格式的数据包,包括处理结果和标志等信息。?使用抓包器(如Fiddler、Wireshark、N

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档