2022年Web自动化测试中的接口测试 .pdf

上传人:C****o 文档编号:39897255 上传时间:2022-09-08 格式:PDF 页数:5 大小:360.15KB
返回 下载 相关 举报
2022年Web自动化测试中的接口测试 .pdf_第1页
第1页 / 共5页
2022年Web自动化测试中的接口测试 .pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2022年Web自动化测试中的接口测试 .pdf》由会员分享,可在线阅读,更多相关《2022年Web自动化测试中的接口测试 .pdf(5页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、Web自动化测试中的接口测试1、背景1.1 Web 程序中的接口1.1.1 典型的 Web 设计架构web 是实现了基于网络通信的浏览器客户端与远程服务器进行交互的应用,通常包括两部分:web 服务器和 web 客户端。web 客户端的应用有html,JavaScript,ajax,flash 等;服务器端的应用非常丰富,比如 java 的 servlet,jsp,ssh 框架,.net 的 aspx,还包括其他脚本如php,python。web 服务器端的设计架构近年来一直比较流行的是三层架构(3-tier application),通常意义上的三层架构就将业务应用划分为:表现层(UI)、业

2、务逻辑层(BLL)、数据访问层(DAL)。分层的目的在于降低代码见耦合,提高代码架构的可维护性。总的来说,这三层架构的意义如下:1)表现层(UI):用户界面,即用户可见的操作界面或者入口。2)业务逻辑层(BLL):封装具有业务含义的操作函数。3)数据访问层(DAL):封装对 数据库 或者其他存储介质的原子性操作。1.1.2 Web 接口的概念web 接口是服务器与客户端交互的方式,即浏览器或者其他客户端工具与web 服务 UI 层交互的协议.常见的有两大类,一是浏览器与服务器交互的HTTP 协议的接口,另一类web?service 接口如 soap,rmi,rpc 等协议。HTTP 接口请求方

3、法常用的有GET、POST 两种请求类型。具有无连接无状态的特征。HTTP 请求例如 GET?/images/logo.gif?HTTP/1.1,表示从/images 目录下请求logo.gif 这个文件。1.2 WEB 接口自动化1.2.1 Web 接口 测试web 接口测试即站在web 服务程序 UI 层之上 自动化测试 的一种手段,是站在用户的角度上测试web服务程序业务逻辑的正确性。测试的重点是围绕web 服务暴露的接口检查接口数据的正确性,这个过程是将 web 服务程序当做黑盒,通过自动化测试技术提高测试执行效率降低人工回归的成本。1.2.2 什么要做 接口测试下图说明了基于HTTP

4、 接口的 web 应用的整体架构特征,按照这种架构设计开发项目,引发两个问题:第一、系统级测试一定要等到web 服务器程序和浏览器端的程序都开发完毕后才能进行吗?参考以下传统的 RD 与 QA 合作进行的项目流程,可以看到,QA 在 RD 提测程序后才能真正进入到测试阶段,那么项目的发布周期自然受到这种串行下来的工作 安排影响,是1+1 的时间周期。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 5 页 -第二、为了提高效率,公司的团队引入了系统级自动化测试的工具或方案,既然是从用户角度去测试,当然要寄希望于从模拟用户行为代替手工操作来进行测试。比如从浏览器操作的方式去测试,能很

5、直接的覆盖用户的一手操作,但是需要思考的是,浏览器各个版本如ie6,7,8,chrome,firefox 等,各自有各自特性,JavaScript在浏览器内表现效果又不尽相同,浏览器在不同windows 环境下、不同网络条件下运行的状况又不一样,给QA 带来一个难题:如何保证浏览器上的自动化case 稳定、高效执行?我们先分析第一个问题,项目团队需要提高产品发布效率,提前QA 测试介入的时间点,我们可以想到有几种方案:1)QA 跟随 RD 进度,加入到各个层级代码参与单元测试:假设我们没有引入TDD 模式没有引入 敏捷,那么常规的解决方式是一批被测函数代码由RD 写完之后提交 svn,然后 Q

6、A update 代码后先花十几分钟阅读代码再加上对业务需求的理解然后再花费十几分钟写 Xunit case,与 QA 预期结果一致则好,不一致则需要再花时间与RD 沟通原因等等。其一QA 花费更多时间,要深入到RD 的代码逻辑深处;其二对QA?coding 能力要求也很高,这取决于公司QA 人员的定位,是要求QA 更熟悉测试设计而代码能力次之呢,还是QA 的整体技术能力都要很高,一般来讲大多数的 QA 强项在于业务需求的熟悉和测试设计能力,所以这种方式对团队整体人员素质的要求非常高。2)QA不参与单测,RD依据需求纵向拆分功能点然后迭代提测,QA能提前一定时间介入测试:对照如下的流程示意图说

7、明这个过程,实际上是传统瀑布模型做了拆分,变为了多个短期的“小瀑布模型”,这样的效果能使得项目周期长的产品,可提前介入测试以提前发现问题。在这样的迭代流程中,如何合理利用自动化手段来提高测试效率呢?一般来讲迭代周期不会很长,常规性的为 35 天一个周期,做太复杂的自动化投入成本较高。对于 web系统来讲,为避免过多的自动化投入得不偿失,需要谨慎的判断web系统的特征适合哪种自动化模式。所以这里特别要关注的就是分层自动化测 试:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -如上图所述,web系统可以做几种功能测试:单元测试,集成测试,系统测试。大多数的产品QA不会太多介

8、入单元测试,集中在集成测试和系统测试。结合上面提到的迭代排期,其实在一般项目中上层UI 的开发往往比较滞后,赶工的结果也是提测质量不高。所以可推荐的一种模式是迭代周期内按照UI 接口划分功能点做排期,UI 的开发可以放在UI 接口稳定之后提测。所以迭代周期内,面向UI 接口的自动化就是一个将测试前置,并且积累自动化case 以待回归时代替手工操作的大好机会。就着上面这个结论,再分析一下本节开头抛出的第二个问题:“系统级自动化测试的稳定性与可靠性”,先提出几个观点如下:1)有一些测试点,从系统级角度做自动化的性价比不高:第一:目前技术手段上还不具备低成本的实现手段的,比如flash、js 实现的

9、一些效果、不规范HTML标签、对浏览器运行版本环境考虑不周等引发的问题。导致开发成本高,运行的稳定性较低。第二:UI 实现逻辑比较薄,比如只是查询DB一个字段然后显示在页面,把重点放在后端逻辑检查上性价比更高。2)系统级测试和集成测试的关注点不同:系统级测试关注的是用户从UI 直接操作所能见到的结果,而集成测试关注的是UI 接口数据的准确性。比如报表功能,页面上看到的就是一个表格,而对UI 接口来讲需要覆盖 N 种参数组合。上面两点说的是系统级测试和集成测试的区别之处,在自动化实施过程中,推荐分层的测试思路,既能够细化测试也能综合衡量自动化的投入成本,总的来讲就是以下几点:1)传统瀑布项目,持

10、续周期长,通过迭代模式可提前介入测试,而迭代周期内系统级功能可能不具备可测性,但是接口可以具备可测性。2)基于 UI 的自动化有利有弊,需要结合系统特征综合考虑分层测试的必要,分层后各有测试的侧重点,比如 UI 自动化重点关注UI 的操作流程和显示,集成测试更关注UI 接口的参数等价类覆盖和数据正确性。1.2.3 接口可测性分析接口显而易见要比UI 简单的都,只需要知道协议和参数即可完成一次请求,从自动化测试实施难易程度来看,有以下几个特征:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -1)驱动执行接口的自动化成本不高:HTTP,RPC,SOAP,RMI等各类都可以依

11、据相应的协议封装一个client作为接口请求的执行器。2)整个自动化测试中综合性价比高:接口测试还是属于黑盒范畴,所以比单元测试难度要低;而相比UI 自动化稳定性可靠性更高。2、接口测试工具选型2.1 常见测试工具2.1.1 JUnitJUnit 作为单元测试框架常被用作白盒测试,框架具备的一些优良特征有:1)提供丰富API 支持多种验证结果正确性的逻辑2)通过参数化、before、after 等特性,支持用例代码可复用3)suite的模式支持case 的批量运行4)有展现良好的报表5)与 eclipse ide集成,使用方便2.1.2 HttpClientHttpClient是一个功能丰富支

12、持HTTP协议的客户端编程工具包,具备以下主要功能:1)封装实现了所有HTTP的方法,如GET,POST,PUT,HEAD 2)支持 redirect,会话保持3)支持文件上传2.1.3 HttpUnitHttpUnit是一个 HTTP请求的测试辅助工具,能处理web测试的需求。通过模拟浏览器的行为,处理HTTP请求、会话保持、重定向以及对HTTP?response 做 DOM 解析。相比于 HttpClient,不同之处在于:1)HttpUnit能对 HTTP返回的结果页进行解析,比如DOM 元素定位2)HttpUnit能自己启动一个servlet来运行被测服务2.1.4 HtmlUnitH

13、tmlUnit相比 HttpUnit功能更加强大,就像一个浏览器,HtmlUnit是 Junit的扩展测试框架之一,该框架模拟浏览器的行为,开发 者可以使用其提供的API 对页面的元素进行操作。HtmlUnit支持 HTTP,HTTPS,COOKIE,表单的 POST和 GET 方法,能够对HTML 文档进行包装,页面的各种元素都可以被当作对象进行调用,对JavaScript的支持也比较好。2.1.5 JWebUnit名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -JWebUnit 以 HttpUnit和 JUnit为基础的一个web测试工具。可以用来验证链接跳转、表单输入和提交、表格内容以及其他?Web?应用程序特性的正确性。相比于HtmlUnit,JWebUnit 封装的更友好,编写case 也会更加简单。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com