精华内容
下载资源
问答
  • 自动化测试中,第一、如何保证脚本的有效性?第二、如何降低自动化维护成本?
  • 从自动化测试执行的角度谈自动化脚本维护 <br /> 自动化脚本在执行完毕后,每个用例会分为通过或失败两种。对通过的用例,没什么可说的,这里主要谈下失败的用例。 <br /> 失败的用例需要人去查看...

    从自动化测试执行的角度谈自动化脚本维护

    自动化脚本在执行完毕后,每个用例会分为通过或失败两种。对通过的用例,没什么可说的,这里主要谈下失败的用例。

    失败的用例需要人去查看是否是脚本稳定性的问题,或是程序更新引起的问题。

    对于脚本稳定性的问题又分为:配置环境引起的问题和非配置环境引起的问题。

    对于配置环境引起的问题,那么在执行自动化测试前,需要人为地或自动地检查环境并配置好环境。这个如何配置,要预先知道,写成配置规范。
    配置环境引起问题,包括:
    a、自动化测试脚本的配置。
    b、对测试程序进行配置。如:是否还原初始设置、是否删除某些数据。
    c、对IE进行配置。
    d、对与测试程序有关的程序或影响脚本稳定性的程序进行配置。

    针对配置环境问题,对于每个测试系统,都要进行编写《XX系统自动化脚本配置手册》,以避免犯低级的配置错误。

    对于非配置环境引起的问题,又分为如下几类:
    a、网络延时,识别对象的同步问题。
    b、未知因素引起脚本失败。
    c、未知因素引起脚本运行中断。
    d、自动化脚本本身使用了不稳定的因素。
    e、脚本的继承性,上个脚本失败导致了下一个脚本也失败。

    网络延时的问题,通过错误时再次重新执行此脚本或在脚本执行前确保网络正常,可解决此类问题。
    以上几类中,以e类的最为严重,因此写脚本时最好不要产生依赖的脚本。
    以上几类中,以b类和c类的最不好修改,但是可以通过不断重复运行此类引起失败的脚本来进行调试。


    对于程序更新引起的问题,分为如下几类:
    a、程序更新,导致大量脚本失败。大量脚本失败,原因又分很多种,情况比较复杂:有整个页面都发生了变化、有业务逻辑发生变化、有控件类型发生变化、有程序修改的是最频繁使用的控件。如果是业务逻辑发生变化,则改起来比较费力。
    b、程序更新,导致少量脚本失败。少量脚本失败,一般主要流程没变,修改起来相对容易。

    为了优化成本,通常在晚上进行自动化用例的执行。
    对于已知的程序更新,一般在自动化测试执行前就先进行维护。
    对于不知道程序更新在什么地方,一般在自动化测试执行后才进行维护。
    如果执行后,存在大量脚本稳定性问题或大量程序更新引起的问题,那么则需要第二天马上进行分析维护,以便维护后当天晚上进行再次执行。
    如果执行后,存在少量脚本稳定性问题或少量程序更新引起的问题,那么依情况决定是否马上进行维护,是否需要再次执行。

    对于目前自己一周的工作,理想情况是:维护脚本时间加起来占1天,执行时间加起来占0.5天,还有3.5天用来进行其他工作。

    展开全文
  • 闲鱼UI自动化之前的情况是脚本维护成本较高,因此减少脚本投入的成本是提高自动化效率的第一步设计思路1、monkey大家都了解,毫无顺序的随机乱点,可以用来测app的稳定性,如果能记录monkey点击的元素,那就相当于有...

    作者:闲鱼技术-勤明

    背景

    随着app的快速迭代更新,UI自动化是提高测试效率不可少的手段。 闲鱼UI自动化之前的情况是脚本维护成本较高,因此减少脚本投入的成本是提高自动化效率的第一步

    设计思路

    1、monkey大家都了解,毫无顺序的随机乱点,可以用来测app的稳定性,如果能记录monkey点击的元素,那就相当于有了自动化脚本里面的操作步骤
    2、有了操作步骤后,我们还需要预期结果才能算一条完整的用例,如果能把点击后,界面的元素记录下来,我们就可以作为预期结果来使用
    3、然并卵,这样的脚本根本没用,范围不可控,操作路径又太长,没有mock服务端数据脚本根本跑不起来
    4、改进策略,脚本按页面的维度来设计,只针对当前页面点击,跳出去后返回到当前页面继续点击下一个元素

    实现方案

    part1、遍历实现

    获取页面元素

    1、页面元素获取,使用appium自带方法getpagesource获取
    2、 获取界面元素的同时需要获取页面名称,作为唯一标识,Android端能获取activity,ios只能采用hook方式拼接页面名称
    3、将页面元素+页面名称记录

    页面操作

    1、页面判断,不在当前页面,或者appcrash等异常,重启app回到该页面,或者back会页面
    2、读取元素包括,id,name,bounds,封装使用id,xpath点击方式,找不到id,就用xpath点击,保底方法
    3、过滤不可点击的元素,能区分出来不可点击的元素(本地有记录,但是不对它进行点击)
    4、元素属性文件解析,直接生成可点击的属性,如id,xpath等
    5、页面元素点击完后,判断是否要滑动屏幕从新加载元素,页面保持不变

    记录操作步骤

    1、获取到的页面元素是xml格式的,本地不做转换,保存在本地时就保留xml格式,以元素名称命令
    2、调用手机截屏操作,截图保存本地,以点击元素命名
    3、保留一个文件一直记录操作步骤,从遍历开始到结束一直记录
    4、缓存记录已点击的元素,防止重复点击

    异常处理

    1、app异常
    2、跳出app
    3、手机断开,服务断开

    目前开源的框架appcrawler已支持这些功能,只需要针对操作步骤解析生成脚本就行,如果有资源可以自己重新做一套遍历框架

    87335179b2acc9c590c7bd7cafbb2c9d.png

    part2、脚本处理&归类

    脚本按页面区分

    1、如果按业务划分脚本,脚本操作步骤会很长,没有mock数据支持,脚本成功率很低
    2、记录 页面名称-页面可点击元素--点击后页面元素(或者页面截图,可以用图片识别能力来做结果比对)
    3、细分按模块,每个模块脚本归为一类,目前我采用统一标识moduleName值,1代码模块1,2代表模块2,如果脚本更新,只需要把模块对应的moduleName值变更下(每次脚本更新,之前的脚本保留,新的脚本改下模块值就可以)

    脚本存入数据库

    1、数据存入mongdb,对应关系表如下

    753704e968a446b26b50839f7fcb95b0.png

    part3、脚本执行&&报告生成

    执行框架-基于appium框架,完善数据驱动的自动化执行框架

    封装获取设备的方法

    1、获取本地连接的设备,设备号,带入appium启动app
    2、带入设备号,带入appium启动app

    数据库脚本读取

    1、mongdb链接,读取

    封装case执行类

    1、 数据驱动执行,指定casename,预期结果,操作步骤,截图等
    2、 封装连接数据库方法,获取数据库页面元素,存入数组,读取数组数据作为脚本,每一个元素作为一个脚本执行,对应的元素执行失败,不影响其它元素执行
    3、统一的去除弹框,针对app登录方法

    报告生成

    1、报告展示(成功脚本,失败脚本,操作步骤截图,手机日志)

    目前效果

    目前采用遍历的方式,我们脚本从原有的120个增加到247个,通过率提高到98%左右,覆盖11个主干页面,每次版本,纯手工更新脚本需要半天时间,现在1小时内可以完成更新,目前发现有效问题15个

    d020719702d4dc67c9f1b576835f47d4.png

    畅想

    客户端UI自动化目前发展已经到瓶颈,大家都在尝试新的方式,传统的手动编写脚本方式成本太大,有很多解决方案,目前比较流行的是录制脚本,局限性在于回放的成功率不高,遍历解决脚本生成更方便点
    通过遍历生成脚本,使用成本不高,每次在新版本发布后,可以针对对修改过的页面进行遍历,收集更新脚本,目前最大的工作量是脚本需要筛选一次,将部分动态变化的脚本去掉,运行更加稳定
    每次版本更新发布,自动遍历修改过的页面,自动更新脚本,零成本脚本生成到运行出结果

    展开全文
  • 开发自动化专家Paul Duvall使用这部分自动化技术来向人们展示如何改进许多常见的构建实践,这些实践会阻止团队创建一致,可重复和可维护的构建。 此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着...

    存档日期:2019年5月15日 | 首次发布:2006年10月10日

    您花费多少时间来维护项目构建脚本? 可能比您预期或要承认的要多得多。 不必经历如此痛苦的经历。 开发自动化专家Paul Duvall使用这部分自动化技术来向人们展示如何改进许多常见的构建实践,这些实践会阻止团队创建一致,可重复和可维护的构建。

    此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着技术的飞速发展,某些内容,步骤或插图可能已更改。

    翻译自: https://www.ibm.com/developerworks/java/library/j-ap10106/index.html

    展开全文
  • 简介:软件自动化回归测试是软件...为解决该群体的困扰,本文将介绍如何让不熟悉编程的业务测试人员也能编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍。 本文适用于需要为测试...
    简介: 软件自动化回归测试是软件工程实践中的重要发展趋势之一。目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要自动化测试人员熟悉开发编程语言。但是过高的编程门槛让很大一部分优秀的业务测试人员只能对自动化测试驻足遥望。为解决该群体的困扰,本文将介绍如何让不熟悉编程的业务测试人员也能编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍。
     

    本文适用于需要为测试团队开发自动化回归测试框架的测试设计开发人员。目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要测试人员熟悉开发编程语言。但是过高的编程门槛让很多测试人员只能对自动化测试驻足遥望。为解决该群体的困扰,本文将介绍一种基于 XML 维护自动化测试脚本的自动化测试框架,并详细描述了其中的技术实现细节。XML 具有编写简单,易于在任何程序中读写数据等特性,这使得 XML 成为了数据交换的唯一公共语言。使用基于 XML 的 Selenium 自动化测试框架,可以让不熟悉编程的测试人员快速编写出类似传统功能测试用例的自动化测试用例,从而扫除自动化测试的技术障碍。

    本文首先会对比一下业内主流的自动化测试工具,简单分析测试人员使用这些工具时存在的问题。然后以测试人员编写的一份传统测试用例为例子,演示如何使用 Selenium 为其编写自动化测试脚本文件。接着,介绍了如何开发基于 XML 的 Selenium 自动化测试框架。最后,简单介绍了一下如何为基于 XML 的 Selenium 自动化测试框架编写更多的特性。通过比较两种自动化测试实现方式,使用 XML 维护 Selenium 自动化测试脚本的优势一览无余的展示出来。

     

     

    原文链接在http://www.ibm.com/developerworks/cn/web/1304_zhusy_xmlselenium/index.html

    转载于:https://www.cnblogs.com/loggingselenium/archive/2013/05/02/3055468.html

    展开全文
  • 例如GUI自动化测试,模拟人去操作软件界面,把人从简单重复的劳动中解放出来本质是用代码去测试另一段代码,属于一种软件开发工作,已经开发完成的用例还必须随着被测试对象的改变而更新,因此,还有额外的维护成本...
  • 我们做自动化测试可能遇到的问题:1.大量使用name、id、xpath等页面元素。无论是功能修改、UI重构还是交互性改进都会影响到这些元素,这使得Selenium测试变得非常脆弱。  我们做自动化测试可能遇到的问题:  1....
  • 但如果想很好地使用 Jmeter 进行接口自动化测试,必须自己定义一套规范的脚本结构,才能有效降低脚本维护工作量,提升工作效率。 本场 Chat 主要内容: Jmeter 简要介绍; Jmeter 进行接口自动化的优势; Jmeter ...
  • 这篇我们主要讲一下,如何优雅的使用Jmeter一步步的实现接口自动化,完成脚本与数据分离,把可能对Jmeter脚本的维护转移到csv文本中,降低接口变更时对脚本的维护,最终目标是实现写好接口自动化脚本后,接口变更的...
  • 软件自动化回归测试是软件工程实践中的重要发展趋势之一。目前业内主流的商业自动化测试工具和开放源代码测试工具,都需要自动化测试 人员熟悉开发编程语言。但是过高的编程门槛让很大一部分优秀的业务测试人员只能...
  • 其实设计这个框架最初的动机是来源于工作中的一个任务——同事让我维护一个很久以前编写的“自动化脚本”,难  最近利用些业余时间自己编写了一个小型自动化测试框架,在设计过程中自己也渐渐对自动化框架的作用有...
  • 这篇我们主要讲一下,如何优雅的使用Jmeter一步步的实现接口自动化,完成脚本与数据分离,把可能对Jmeter脚本的维护转移到csv文本中,降低接口变更时对脚本的维护,最终目标是实现写好接口自动化脚本后,接口变更的...
  • 简介 本工程主要是考虑到很多人只会复制别人的自动签到模板,当别人的模板出现问题时,没有办法去定位问题并修改。...3.安装Selenium(是一个自动化测试工具,我们这里用了打开浏览器并安装我们的预设..
  • 【OpenTest】 之 如何实现自动化测试框架 中介绍了在OpenExpressApp中对UI自动化测试框架的总体介绍,其中在总体要求中有一条是框架可以由有编码经验的测试人员维护扩充,本篇将介绍如何在框架中扩展对选择文件的...
  • 1、数据作用: ...我这里就不多说,今天我们要怎么写一个比较好的数据备份自动化脚本,让我们更好的管理数据库。 2、mysql备份脚本思路 首先要有一个思路,我的要求是每个的周一到周五做增量备份,周六做全...
  • RobotFramework作者建议自动测试如何选择自动化测试框架。软件自动化测试,作为手工测试的替代,越来越受到关注。PekkaKlrck,作为RobotFramework的创建者和核心开发者,按照系统级别,介绍了几种不同的自动化测试...
  • 测试自动化脚本是软件开发 测试自动化脚本是软件开发.这个原则意味着我们所知道的关于编写软件的许多知识也适用于测试自动化。然而没有开发软件经验的测试人员对这个的感触并没有那么深刻。 开发软件编写完成后,...
  • 这篇文章,我们来看看如何将数据和脚本分离,并且还能够实现参数。测试数据和测试代码在实际的测试工作中,往往是分开存放的,利于测试数据和测试脚本的分开来维护。比如,为测试用例添加几组新的测试数据,只需要...
  • RobotFramework作者建议如何选择自动化测试框架软件自动化测试,作为手工测试的替代,越来越受到关注。PekkaKl?rck,作为RobotFramework的创建者和核心开发者,按照系统级别,介绍了几  作者建议如何选择自动化测试...
  • 1、数据作用:数据对我们来说是非常非常的重要,如果你是管理数据员、运维人员的,数据丢失...我这里就不多说,今天我们要怎么写一个比较好的数据备份自动化脚本,让我们更好的管理数据库。2、mysql备份脚本思路首先...
  • 1、monkey大家都了解,毫无顺序的随机乱点,可以用来测app的稳定性,如果能记录monkey点击的元素,那就相当于有了自动化脚本里面的操作步骤 2、有了操作步骤后,我们还需要预期结果才能算一条完整的用例,如果能把...
  • 如何选择自动化测试框架 软件自动化测试,作为手工测试的替代,越来越受到关注。Pekka Klärck,作为Robot Framework的创建者和核心开发者,按照系统级别,介绍了几种不同的自动化测试方法的区别。 一...
  • 谈到稳定性,不得不说的就是“出错重试”机制了,在自动化测试中,由于环境一般都是测试环境,经常会有各种各种的抽风情况影响测试结果,这样就为测试的稳定性带来了挑战,毕竟谁也不想自己的脚本一天到晚的出各种...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 609
精华内容 243
关键字:

如何维护自动化脚本