自动化测试的分析与设计

一、前言

        最近阅读了一篇很好的论文《智慧家居小程序自动化测试的设计与实现》【1】,受益匪浅。作者简而美的语言,让我对软件自动化测试有了更清晰的认识。

二、项目分析

        作者基于智慧家居小程序,总结了推动自动化测试的原因,并对项目进行了可行性分析和页面分析。

1.自动化测试原因

(1)页面元素复杂:小程序的页面由View(视图)、Layout(布局)、Menus(菜单)、Widgets(界面)等部分构成,页面元素多、复杂。如果采用手工测试,需要大量的时间来完成元素的测试;如果使用自动化测试,可以节省大量人力物力。在编写脚本时,可以通过Xpath等方法,实现元素定位。

(2)测试流程复杂:测试工作通常是在前后端开发完后进行的,介入较晚,测试时间不充裕,难以保证软件质量。所以在前后端开发之间加入一道测试屏障,即接口测试。在后端接口交付之后就进行接口自动化测试,若接口有问题,无需调用前端就可以提前发现后端的问题,节省了时间。

2.可行性分析

(1)经济可行性:即成本问题,自动化测试所用的工具和技术都是开源免费的。

(2)技术可行性:接口自动化测试设计选用JMeter+Ant+Jenkins框架,页面自动化测试设计采用Appium,技术开源且简单易学。

(3)操作可行性:框架简单容易操作,页面也简单易懂。

3.页面分析

(1)页面分类:小程序页面分为原生页面和混合Web页面。在自动化测试分析时,要将两种页面分开处理。对于原生页面,可以准确定位页面元素,抓取页面控件;对于混合Web网页,需要定制特殊的自动化测试方案。

(2)页面模块:小程序页面可以分成几个功能模块。在进行自动化测试需求设计过程中,需要最大程度地将各个模块进行解除耦合,分模块编写测试用例。这样,即使后期更改,也只需针对模块修改,将影响降到最小。

(3)页面跳转:小程序的页面与页面之间会有许多跳转,在测试用例设计的过程中需要将跳转关系整理清楚。

三、自动化测试框架分析与设计

1.UI自动化测试框架分析与设计

        UI自动化测试框架模拟用户对页面进行操作,包括点击、滑动、切换页面、跳转页面等。需要对页面元素进行识别定位,对页面跳转、页面切换、及消息的弹出都做出相应的处理。页面自动化测试框架有很多,如selenium、appium、minium(微信小程序自动化测试框架)等。在该论文中,作者采用Appium,利用Appium连接Pycharm与手机端口,实现用测试脚本控制手机端小程序的功能。

设计脚本架构需考虑的因素:

(1)小程序测试和UI自动化测试框架要分开,不可一概而论。

(2)测试脚本跨平台使用,兼容不同的应用系统。

(3)测试脚本模块应具有极低的耦合性,一个模块的更新不应该涉及多个地方的修改,维护难度不应该太大。

(4)程序和数据分离,提高脚本的复用性。

综上,作者将测试脚本按照功能块来编写。例如进入小程序模块、进入模拟家电模块、进入商场首页、进入发现页面、进入我的页面等等。并将脚本设计分为三个层级:公共方法层、模块用例层、用例执行层。如下:

  1. 公共方法层:存储共用文件和函数,如HTMLTestRunner等。
  2. 模块用例层:按功能分模块进行设计,使用单元测试Unittest模型,每一个功能块是独立的。
  3. 用例执行层:加载测试用例,执行测试用例,生成测试报告。

2.接口自动化测试框架分析与设计

接口测试是模拟用户向后台发出请求,使用Postman、JMeter等工具就可以实现接口测试。这里,作者采用JMeter+Ant+Jenkins的接口自动化测试框架,实现接口的自动化测试。JMeter用来编写接口测试的脚本,模拟小程序向服务器发出请求。JMeter可以使用断言来判断接口返回是否正确,可以不依赖前端页面发出正向测试以及反向测试。Ant是代码编译工具,可以将系统无法识别的代码编译成可以识别的代码,是测试脚本的生成工具。而Jenkins的主要作用是持续集成、定时构建任务,还具有邮件通知的功能。结构如下:

 四、自动化测试流程分析与设计

自动化测试流程主要包括自动化测试需求分析、制定测试计划、编写自动化测试脚本、执行自动化测试脚本、测试结果分析五个主要步骤。如图所示:

(1)自动化测试需求分析

软件测试的用例根据业务需求文档来编写。在分析业务需求后,需要将业务需求转化为测试需求,并分析出哪些部分是可以由手工测试完成,哪些部分需要由自动化测试完成。分析完之后需要制定具体的测试策略和方法,最后编写出满足需求的手工测试用例和自动化测试用例。

(2)制定测试计划

明确测试需求之后,需要制定测试计划。例如测试范围、时间、人员分工、环境部署等等。测试计划由测试经理制定,灵活安排组内成员分工,协调各项目计划。

(3)编写测试脚本

测试计划完成后,测试工程师开始根据项目的具体需求编写测试脚本。测试脚本完成后发给项目组进行评审,审查是否覆盖测试场景,有没有需要改进的地方。

(4)执行自动化测试脚本

测试脚本评审完没有问题就会进入执行测试阶段,测试之前需要将环境准备好。测试运行后会有报告以及lon日志。

(5)测试结果分析

测试报告出来后,测试工程师需要对测试表格进行修改,使得测试结果更加清晰明了。如果有测试失败的地方,要分析是软件本身的问题,还是脚本设计存在的问题,或是测试环境的问题。

参考文献:[1]邓梅淇. 智慧家居小程序自动化测试的设计与实现[D]. 南京邮电大学.

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值