`
tbxialan
  • 浏览: 12268 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

UI自动化脚本编写思路

阅读更多
                                                 项目页面自动化分享(二)

                                                                                   ——脚本编写思路

       在项目的开发和第一轮测试阶段,我花了部分时间来编写脚本。当我开始执行产出的批量脚本时,很多脚本失败,这在平时进行产品维护编写页面自动化过程中是没遇到的。

      通过对项目页面自动化的不同之处进行了思考和分析,原因如下:1.前端产出的demo页面,某些控件名发生改变,脚本编写完成后,花时间修改控件名;2.单个脚本实现的功能校验点,是以最小的测试集为单位,包含了多条tc的校验,每条tc都包含页面的操作,因为项目前期,项目质量不高,单个tc的页面操作留下的数据,容易对下个tc的页面操作及数据校验造成影响,脚本失败率高,自动化发现的bug精准率低。3.脚本代码可读性不强,相同的修改点,涉及到批量脚本相同代码的修改。

      因此,在这次项目中,只需要1个小时完成的脚本,我却花了3倍的时间。更多的时间用在了脚本的优化。虽然用了更多的时间,但自己总结了一套编写项目页面自动化脚本的思路。

     图1 是项目的一个功能模块。和红框标识的平行的内容是最小的测试集。图2 是其中一个最小的测试集(红框标识的测试集)里的多条tc。






 

        1个脚本实现的校验点的粒度应该怎样划分呢?一种方式是,我们可以单个脚本只包含1条tc的校验,这样编写脚本的好处是,校验点单一,方便问题排查。但产生的问题是,一方面,项目中实现页面自动化的tc数几十上百,产生的脚本数很多,难于维护,另一方面,运行1个脚本就执行1次淘宝页面登陆和退出操作,如此的操作,过于频繁。另一种方式是,我们也可以单个脚本包含多条tc的校验,这样编写的好处是,脚本数相对较少,方便维护,淘宝页面登陆和退出操作大量减少。但问题是,1个脚本里单个tc的页面操作留下的 数据,容易对下个tc的校验点产生干扰,脚本发现bug精准率低。

       面对1个脚本实现的校验点的粒度划分,我在第二种方式上做了一些优化,避免了问题的产生。

我以最小测试集为单位,产出1个脚本。有多少这样的测试集,就有多少脚本数。1个脚本实现了单个最小测试集里所有tc的校验,对不能实现页面自动化的tc,在图中用特殊的icon作标识(图2),进行手工测试。

       图3是1个脚本的编写思路:






       3个红框里的方法是Automan提供的脚本编写基本结构。在这次项目里,封装的NO.1方法,是对操作页面的抛出,NO.2方法是数据库的数据清理,NO.3方法,是执行NO.2前查询数据,若数据没问题,不做数据清理,NO.4方法是页面的数据清理,NO.5方法是单个tc的校验。用这样的思路,将代码封装成一个个方法。方便process()方法里的调用。代码简洁,可读性较强。

      图4是主方法process()对其它方法的调用,实现了整个脚本的运行:




    

        步骤1完成脚本运行前数据的校验和清理,步骤2完成操作页面的抛出和页面上的数据清理,步骤3是完成1条tc的检验后再次清理数据,再次进入要操作的页面,接着调用下1条tc的校验方法。如此的数据清理,很好的解决了上文所述的问题:单个tc的页面操作留下的 数据,容易对下个tc的校验点产生干扰。

       在这里,要说明一点,脚本运行失败后,为了更好的排查是哪条tc的方法校验出了问题,可以在每条tc方法的校验里,在结果

不正确的if分支写上明确的错误信息:





      建议调用verify开头的校验方法,即使单个tc校验出错,脚本仍能很好完成运行,不会因为校验错误就中断运行。这里的错误信息简明扼要的包含操作和错误的结果,方便自己快速定位bug。

        这里分享的脚本编写思路,适用于在页面上点击相应控件后,涉及到页面展示或数据库的校验,产品大部分的页面自动化都可以用这样的编写思路完成脚本。

        脚本经过这样的编写整理后,整批脚本可运行率大大提高,项目的页面自动化就这样顺畅的实现了。

        项目页面自动化的实现,最大的瓶颈是时间!时间的争取,一方面体现在批量脚本优化,用了上面的编写思路,优化时间可控了,另一方面,就是批量脚本的编写。

        如何提高编写效率?这次项目深有体会,请见下一段分享。

  • 大小: 41.4 KB
  • 大小: 45.7 KB
  • 大小: 53.5 KB
  • 大小: 9.8 KB
  • 大小: 69.2 KB
分享到:
评论

相关推荐

    python通用UI自动化测试框架源码 2.0

    Python通用UI自动化测试框架源码2.0是一个旨在简化UI自动化测试的工具,适用于各种软件或Web应用的测试。这个框架的核心目标是提高测试效率,降低维护成本,通过抽象元素操作、检查点验证和回退策略,使得测试用例...

    UI自动化demo

    "UI自动化demo"通常包含一系列预先构建的示例脚本和配置,用于演示如何实现UI自动化测试。 在这个“UI自动化demo”中,重点可能集中在使用Appium工具进行移动应用的自动化测试。Appium是一款开源的自动化测试框架,...

    Python实现Web UI自动化测试实战-Chapter-13

    1. **Selenium WebDriver**: Selenium是Web UI自动化测试中的核心工具,它提供了WebDriver接口,允许我们通过编写Python代码来控制浏览器,模拟用户的交互行为。在本章中,我们将学习如何安装和配置Selenium ...

    python封装微软UIAutomation API,使编写UI自动化脚本非常容易

    python封装微软UIAutomation API,使编写UI自动化脚本非常容易。支持py2,py3,x86,x64,支持MFC, WindowsForm, WPF, Modern UI(Metro UI), Qt, IE, FireFox等程序的UI自动化,最新代码请到GitHub下载,码云上不再更新

    基于python的UI自动化操作

    7. **异常处理**:编写健壮的自动化脚本需要考虑各种可能出现的异常,如元素找不到、网络错误等,通过try-except结构进行异常捕获和处理。 8. **测试报告**:可以使用HTMLTestRunner等第三方库生成详细的测试报告,...

    基于java的ui自动化测试框架

    Java UI自动化测试框架是软件开发过程中的重要工具,主要用于提高测试效率,确保应用程序用户界面的稳定性和可靠性。本文将深入探讨基于Java的UI自动化测试框架,包括其核心组件、使用的技术以及如何应用于Android ...

    Python实现Web UI自动化测试实战-Chapter-12

    在本章"Python实现Web UI自动化测试实战-Chapter-12"中,我们将深入探讨如何利用Python语言进行高效的Web用户界面(UI)自动化测试。这一领域对于软件开发和测试团队至关重要,因为它能节省大量手动测试的时间,提高...

    webUI自动化测试框架(Python+selenium)

    【Python+Selenium构建WebUI自动化测试框架】 在软件开发过程中,测试是不可或缺的一环,而自动化测试能够极大地提高测试效率,降低人工出错的概率。本文将深入探讨如何使用Python结合Selenium库构建一个WebUI自动...

    WebUI自动化测试项目,支持截图和录屏,一个元素多种定位方式

    在IT行业中,WebUI自动化测试是一项关键任务,用于确保网页应用程序的功能性和用户界面的稳定性。本项目专注于构建一套全面的自动化测试解决方案,尤其强调了截图和录屏功能,以及元素的多方式定位,这些特性使得...

    基于C#UI Automation自动化测试自动化测试示例工程

    UI Automation是.NET Framework提供的一种用于测试Windows应用程序用户界面的技术,它允许开发者编写自动化脚本来模拟用户与界面元素的交互,如点击按钮、输入文本等。 【描述详解】 描述中提到的“15个按钮示例”...

    UI自动化测试UI自动化测试

    UI自动化测试是软件开发过程中的一个重要环节,它主要用于提高测试效率,减少手动测试的工作量,确保产品的质量和稳定性。UI自动化测试主要关注用户界面(UI)的行为,模拟真实用户与应用程序的交互,验证功能是否按...

    深入探索Python Playwright自动化UI测试框架源码

    项目概述:深入探索基于Python的Playwright UI自动化测试框架 本项目致力于深入研究Playwright这一前沿的自动化UI测试框架,采用Python语言进行深入剖析与实践。项目包含35个文件,其中主要包括: - Python脚本...

    AndroidUI自动化被测程序

    "Android UI自动化被测程序"是一个专为这一目的设计的工具,它包含了多种View类型,使得测试用例的编写更加全面和真实。这个项目被标记为"demo_app",暗示它是一个演示或示例应用程序,用于展示如何进行UI自动化测试...

    python+UI自动化测试框架

    Python UI自动化测试框架...通过这样的框架,测试人员可以高效地进行UI自动化测试,减少手动测试的工作量,提高测试覆盖率,同时保持测试脚本的可读性和可维护性。对于大型项目或需要持续集成的场景,此框架尤其有用。

    UI自动化测试学习讲义资料-001

    通过使用编程语言和工具,如Selenium,来编写自动化脚本,以模拟用户与应用程序的交互,实现对软件系统的自动化测试。UI自动化测试能够显著提高测试效率和准确性,尤其是在需要频繁进行回归测试的项目中。 首先,...

    UI自动化测试框架,支持APP、Web、HTML5三端, 基于SpringBoot框架.zip

    将UI自动化测试框架建立在SpringBoot之上,意味着我们可以利用Spring的依赖注入、AOP(面向切面编程)等功能,以及其强大的社区支持和丰富的生态系统。 对于APP测试,框架可能采用了像Appium这样的工具,它支持多种...

    UI自动化(python实现)

    在IT行业中,UI自动化是一种通过自动化工具来测试用户界面(UI)的功能和性能的技术,以提高效率并减少手动测试的工作量。在这个“UI自动化(python实现)”的主题中,我们将探讨如何利用Python语言来实现这一目标。...

    UI自动化测试[借鉴].pdf

    UI自动化测试是一种高效且节省资源的软件测试方法,尤其在UI密集型的应用程序中,如桌面应用和Web应用。它允许测试人员编写脚本来模拟用户与应用程序的交互,执行一系列操作并验证预期的结果。下面将详细探讨UI自动...

    ui自动化waven配置文件(火狐)

    在UI自动化测试中,Waven(也常写作WebdriverIO,WebDriver.IO)是一个流行的JavaScript库,用于编写可扩展且易于维护的浏览器和移动应用自动化测试。它基于WebDriver协议,允许与多种浏览器进行交互,包括火狐...

    自动化用例编写指南

    首先,要开始自动化测试用例编写,需要了解UI自动化测试用例的基本运用。在移动应用测试中,常用的工具有Appium、Selenium等,而Android SDK自带的uiautomatorviewer是一个非常实用的元素定位工具。它可以帮助测试...

Global site tag (gtag.js) - Google Analytics