精华内容
下载资源
问答
  • 一、理解软件测试自动化 1.自动化测试的含义 自动测试就是用程序代替人的手工操作,完成一系列测试的过程。 √     自动化工具能自动打开程序、自动执行测试用例、自动查找控件、自动产生...

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家!

    一、理解软件测试自动化

    1.自动化测试的含义

    • 自动测试就是用程序代替人的手工操作,完成一系列测试的过程。
      √     自动化工具能自动打开程序、自动执行测试用例、自动查找控件、自动产生数据、自动输入数据、自动操作控件、自动收集结果、自动比较实际结果与预期结果是否一致。

    2.软件测试为什么要自动化?

    在这里插入图片描述

    • 软件测试是一项工作量巨大的工作;

    • 软件测试包含大量的重复性操作;

    • 软件测试的某些环节包含一些非智力创造性活动;

    • 很多情况下手工测试难以模拟真实的环境;

    • 手工测试无法提供精确的测试结果。

    3.自动化测试的优点

    • 自动化测试可重复执行,能执行更多、更频繁的测试。

    • 能执行一些手动测试比较困难或不可能进行的测试。

    • 能更好地利用资源,可利用晚上或周末空闲的设备执行自动化测试。

    • 自动化让测试人员腾出时间和精力,测试人员可以投入更多的精力设计出更多、更好的测试用例,从而提高测试准确性和测试人员的积极性。

    • 自动测试具有一致性的特点,能够保证测试更客观,从而提高了软件的信任度。

    4.自动化测试的缺点

    • 不能完全代替人工测试,不是所有的测试用例都可以自动化,工具本身不具备思维能力。
      √     设计用例。
      √     界面和用户体验测试。
      √     正确性检查。

    • 不能保证 100%的测试覆盖率。

    • 需要更长的时间去分析和隔离所发现的缺陷。

    • 自动化测试对软件质量依赖性较大。

    • 如果测试人员不熟悉某些测试工具,测试工作的进度就有可能受到影响。

    • 不能立即降低测试投入,提高测试效率。自动化测试的成本问题可能高于人工测试,因为工具的购买及维护的开支很大。

    5.自动化测试应用场合

    在这里插入图片描述

    6.不正确的自动化测试期望

    • 有了工具,一切测试过程都变得自动了。
      √     如果项目中使用了很多第三方控件或自定义控件,而这些控件的可测性很差,这种测试则不适合自动化。

    • 有了工具,测试工作马上就减轻了。
      √     购买测试工具后,还需要编写和维护测试脚本,这些费时、费力;
      √     可以在界面雏形时期,检查界面中的控件是否可测,从而选择合适的工具。

    • 自动测试工具都是简单易用的。
      √     功能越完备操作通常越复杂,要求使用者掌握更多的技能。

    • 自动化测试尽早执行。
      √     自动化测试需要过早计划但不宜过早执行;自动化测试需要循序渐进进行。

    二、常用的自动测试工具及分类

    1.商业测试工具

    • 需要购买,价格昂贵。

    • 成熟、稳定、有售后服务和技术支持。

    • 适宜 GUI 功能和性能测试。

    • HP
      √     QuickTest Professional/UFT(Unified Funtional Testing):功能测试工具。
      √     LoadRunner:性能测试工具。
      √     Quality Center/Application Lifecycle Management:测试管理工具。

    • IBM Rational
      √     Robot:功能和性能测试工具。
             ✰     支持 HTML、Java、.Net、Visual Basic、PowerBuilder、Delphi、Oracle 表单和 MFC 控件。
      √     ClearCase:软件配置管理工具。
      √     ClearQuest:缺陷和变更跟踪工具。
      √     TestManager:测试管理工具。

    • Compuware QACenter
      √     QARun:功能测试工具。
      √     QALoad:性能测试工具。
      √     QADirector:测试管理工具。

    • Microsoft
      √     Web Application Stress:性能测试工具。

    2.开源测试软件

    • 志愿者开发和维护,未必完全免费。

    • Selenium
      √     最早由 Thoughtworks(思特沃克)的员工 Jason Huggins 编写,后来多人加入。
      √     功能和兼容性自动化测试工具。

    • Jmeter
      √     Apache 组织开发。
      √     性能和接口自动化测试工具。

    三、自动化测试工具的选择

    • 选择测试工具的指导原则
      √     一般不是在项目初期完成工具选择,往往是在开发工具确定很长时间以后才能完成,甚至是项目后期才明确。
      √     选择适合自己公司项目的产品,只买对的,不买贵的。
             ✰     不要轻信测试销售人员的介绍就轻易购买,一定要组织详细的试用,确认适合项目使用,才能购买。
      √     分阶段、逐步引入测试工具。
      √     选择技术支持完善的产品。
      √     尽量选择主流的测试工具。
      √     如需多种工具,尽量选择一个公司的产品。
      √     考虑测试工具的集成能力(操作系统、开发工具、其他测试工具)。需要考虑:与开发语言一致的测试脚本语言,还要注意第三方控件与脚本语言能否匹配。
             ✰     测试工具未必支持所有的控件
                     ▲     可能会出现不识别的问题,不能花太多时间去研究为什么不识别,应该先用最简单的方法解决,使自动化测试得以进行是最重要的。
                     ▲     遇到不能识别控件的问题时,可以向开发寻求帮助,让开发提供对软件的编程接口,更换一个同等效果的工具等。
      √     测试用例的自动化应该注意顺序
             ✰     先自动化简单的、主要功能的用例,然后向次要功能等扩展。
    展开全文
  • 自动化测试】开展自动化测试的过程

    千次阅读 热门讨论 2021-05-13 21:37:33
    周期较长:稳定系统:脚本复用:*被测系统适合怎样的自动化测试?2)调研测试工具、测试框架2.1 框架的选择2.1.1 TestNG主要特点:TestNG的使用方法:2.1.2 unittest2.1.3 pytest2.1.4 Robot Framework特点:2.1.5...



    如果自动化测试过程是不合理的,引入自动化测试只会给软件组织或者项目团队带来更大的混乱。我们应该建立正确的自动化测试目标,制定有效的测试策略,有计划、有步骤地实施合理的测试过程,这样才能确保自动化测试获得所期望的效益。

    1)自动化测试需求分析

    当接受一个新的项目时,必须针对测试项目的具体情况进行具体可行性分析,确定一个软件系统测试中哪些范围、哪些任务是适合自动化测试的而哪些是不适合的。如果对不适合的测试任务实施自动化工作,不仅耗费过多的人力,而且效果也不一定好。

    1.1 如何确定系统是否适合做自动化测试?

    • 周期较长:

      如果被测项目是在今后一年或者几年间要不断进行开发维护的,那么就需要重复的进行大量的回归测试,这种情况下如果有自动化的回归测试体系就可以节省成本投入。
    • 稳定系统:

      已上线运行的稳定系统,开发过程中需求变动较少
    • 脚本可复用:

      脚本可复用以降低维护成本。

    • *被测系统适合怎样的自动化测试?

      自动化测试覆盖的范围很广:单元测试、集成测试、接口测试,GUI测试等等都可以实现自动化执行。
      • 不同的系统情况是不一样,有的适合或是可以做GUI的自动化测试,有的可能只适合做接口的自动化测试,所以需要针对不同的被测项目,考虑具体在哪一个环节作自动化测试
        • 比如说针对搜索引擎,前端往往比较简单,只是一个文本框和提交按钮,大部分的逻辑处理都是在后端完成的,这种情况做自动化的接口测试就可以达到事半功倍的效果。
        • 如果是被测系统有很多的页面操作,那么可以考虑GUI的自动化测试。
        • 以上这两种情况都不是绝对的,如果测试资源足够,那么在各个环节都是可以开展自动化测试的。
      • 还有一点需要考虑的是自动化测试的可行性,比如说对一个系统而言,做GUI测试是最合适的,也是最有效,但是有可能通过各种工具或者是脚本很难实现GUI的自动化测试,那么就需要考虑变通,考虑是否可以将自动化测试调整到接口测试或是集成测试等环节

    2)调研测试工具、测试框架

    2.1 框架的选择

    时下比较主流的自动化测试框架,有TestNG、unittest、pytest、Robot Framework。第一个框架基于Java,后三者基于Python,Java和Python是编写自动化测试脚本最常用的两种语言。下面就简单介绍这四款框架。

    2.1.1 TestNG

    Test NG是一款基于Java的自动化测试框架。

    说到TestNG就不得不提到JUnit,两者都是基于Java的测试框架,功能差异不大,但是TestNG底层调用的是JUnit,因此TestNG的使用对于测试人员来说更友好。而JUnit更偏向白盒测试,所以开发人员用来做单元测试比较多,而且测试结果可读性对测试人员也有一定难度。

    • TestNG使用更便捷,例如并发测试JUnit需要调用第三方库,TestNG则不需要。
    • 一般TestNG主要是测试人员使用。
    • 主要特点:

      • 涵盖单元测试、功能测试、集成测试等
      • 基于Annotation(注解)机制,测试方法更灵活:
        • 当我们想执行一部分测试脚本的时候,就可以使用xml配置文件进行配置,在xml配置文件里,可以选择某些需要执行的测试脚本,排除不需要运行的测试脚本。
      • 支持多线程测试
      • TestNG还可以自动生成html、xml格式的测试报告
        • 测试报告位于 “test-output” 目录下,只需要执行测试用例时使用TestNG执行即可自动生成,无需配置,使用便捷。

        • 还可以对报告内容的详细程度进行设置:

          • 可以说是比较完善的测试报告了,测试报告的样式如下图所示,展示比较直观、简明,可以直接看到共执行了多少个用例,成功/失败分别是多少个,设置级别更高的报告,还可以查看具体的失败情况。

          在这里插入图片描述

    • TestNG的使用方法:

      • 将测试用例生成测试套件,通过执行测试套件来执行测试用例。
      • 常用的组件如下图所示:
        在这里插入图片描述
        • @Test表示一个测试用例。
        • @BeforeMethod/@AfterMethod表示在每一个方法执行前/后执行一次。
        • @BeforeTest/@AfterMethos表示在每个测试用例执行前/后执行一次。

    例如,在使用TestNG框架时,就可以将“启动浏览器”的操作步骤封装在@BeforeTest中,“关闭浏览器进程”的操作封装在@AfterTest中,这样就提高了代码复用性

    2.1.2 unittest

    unittest是一款常用的单元测试框架。它更偏向底层,二次开发方便,因此对于测试人员来说,就具备一定的难度了。

    它的优势是Python自带框架,可生成HTML测试报告,使用的是HTMLTestRunnerNew库。由此,若基于Python开发的测试代码,就非常适合采用unittest测试框架。只需要使用自带的方法生成测试套件,执行测试套件,即可完成多种组合方式的测试。因此,针对Python的自动化测试,unittest可谓是最佳拍档,可以轻松完成大部分的测试功能。

    • unittest也可以将浏览器启动、关闭等通用方法封装,生成测试用例,再将测试用例生成测试套件来执行,如下图所示:
      在这里插入图片描述
      在这里插入图片描述

    • unittest也可以自动生成测试报告,报告形式如下图所示:

      在这里插入图片描述

      • 报告的内容与TestNG生成的报告内容相似,展势执行用例的数量、结果等信息,也可以设置详细等级、标题等信息。

    2.1.3 pytest

    pytest是基于unittest扩展的第三方测试框架,比unittest更简洁高效。

    • pytest可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性。
    • pytest插件丰富,比如returnfailures插件,可用于用例出错重跑。
    • 还有xdist插件,可用于设备并行执行测试用例。
    • 可使用pytest-HTML插件生成测试报告。
    • pytest也可用来进行验收测试,适合复杂度不是很高的系统

    2.1.4 Robot Framework

    Robot Framework也是一款功能强大的自动化测试框架,基于Python的关键字驱动测试框架,自带报告生成,功能完善。因此它易用性更高,测试人员使用成本低,但灵活性就偏低了。一般多用于验收测试和验收测试驱动开发的自动化测试框架。支持跨平台(Windows/Linux/MacOS)。

    • 特点:

      • 关键字驱动测试(KDT),简化自动化过程,对测试人员来说更易读,测试数据语法也简单易用,扩展性高。
      • 例如支持Selenium第三方类库可进行Web UI自动化测试,支持Selenium Grid执行并发测试,并且可生成html测试报告但操作较麻烦。
      • 表格式的测试数据语法和关键词驱动测试使得易用性较高。

    2.1.5 框架对比

    TestNG是基于Java的测试框架,unittest、pytest、Robot Framework是基于Python的测试框架。其实测试框架的选择,更主要还是根据系统的特性,选择适合的框架

    对于unittest、pytest、Robot Framework这三个测试框架,都可支持跨平台,语言单一支持Python,差别并不大,主要如下表所示:

    在这里插入图片描述

    实际选用,可结合系统、框架的优势对号入座,以带来更高的自动化测试开发效率。

    2.2 工具的选择

    不同的测试任务会选用不同的测试工具,如单元测试须要选用单元测试工具,性能测试须要选用性能测试工具。

    • 要考虑被测系统是C/S、还是B/S结构的
    • 服务端和客户端都是用何种语言编写的
    • 数据库的类型
    • 服务器类型等等

    在选择测试工具时,要清楚测试目标和需求,确定适用的技术环境及自动工具可支持的各种测试,分析测试工具与被测软件系统的互操作性和兼容性,考虑工具的易用性、工具学习曲线或培训成本,特别是要考虑工具本身所要求的测试脚本,是否支持数据驱动、关键字驱动,以及是否容易编写、调试和维护等。

    2.2.1 UFT(QTP)

    UFT 就是以前最常用的自动化测试工具QTP,用来进行Web UI自动化测试的。QTP实现的是独占屏幕操作,仿真实际用户操作,一般用于回归测试和新版本测试

    • 特点:

      • 支持Windows平台
      • 使用VBScript编写测试脚本
      • 相比Java/C#这类语言,显然更受测试人员欢迎。

    • 测试流程:

      1、制定测试计划
      2、创建测试脚本
      3、增强测试脚本
      4、运行测试
      5、分析测试结果

    QTP的脚本生成是通过轨迹录制,再进行增强优化,最后实现回放。因此VBScript脚本的逻辑比较松散,因此对于复杂页面情况的处理能力比较弱,脚本维护的成本就非常高。最重要的是,QTP是收费的,QTP11.5版本发布改名为UFT。

    2.2.2 Selenium

    Selenium是目前最常用的一种Web自动化测试工具,是开源的,它可并行测试,模拟用户操作,贴近用户实际操作,测试效果直观

    • 它的优势:

      • 兼容性好:兼容多平台,多浏览器,多语言编写脚本,因此它从测试脚本开发,到部署运行,都比较稳定。
      • API丰富:可以实现对浏览器、页面元素、鼠标键盘、JS窗口等几乎所有的用户操作,执行效率较高。

    • 它的组成:

      当前Selenium已发展到第3代,包含三大组件,Selenium IDE + WebDriver + Selenium Grid:

      • Selenium IDE:
        Selenium IDE是Firefox中的一个组件,可以录制操作轨迹,自动生成脚本并进行回放,但它的缺点是不稳定,生成的代码效率低,定位大多采用自动的xpath方式定位,定位繁琐,回放成功率低,且不适用于复杂系统。
      • Selenium Grid:
        用于实现分布式测试。
      • WebDriver:
        是Selenium核心组件,它就是实现页面操作的组件,利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriverAPI,直接操作浏览器页面里的元素,执行效率更高,且稳定性依赖于浏览器厂商,显然更加稳定,因此各大常见浏览器都有对应的WebDriver。
        • 例如Chrome对应chromedriver。
        • Firefox对应geckodriver。
        • IE对应iedriver。
        • 甚至比较高版本的selenium还自带了部分常用浏览器的驱动,使用起来非常方便。它的优势显而易见,使用浏览器源厂的驱动来进行自动化控制,给我们带了更高的安全感

    2.2.3 Appium

    Appium是目前最常用的一款移动端自动化测试工具,是开源的,它支持Android和iOS平台的原生应用、web应用和Hybrid应用。它的优势,支持跨平台,多语言脚本编写。因此,兼容性很好,开发便捷。

    • Appium是C/S架构,提供了基于Selenium WebDriver协议的统一接口。

    那么这里就需要说明一下Appium与Selenium的关系了。

    • Appium封装了标准的Selenium客户端类库,Appium继承了Selenium中的WebDriver,因此也是通过WebDriver实现界面的定位及操作。而Appium实现的是PC端连接移动端的桥梁作用,这样才能通过PC端对移动端进行自动化测试

    2.2.4 工具的对比

    由于Selenium和Appium都是使用的WebDriver实现操作的,因此这里只对比UFT和Selenium。

    下面这个表格,充分体现了两者之间的优势与劣势,测试人员可以根据需要选择合适的测试工具,以实现最高的测试效率:

    在这里插入图片描述

    3)搭建自动化测试框架并实施

    由leader组织搭建自动化测试框架,并且在项目中逐步地实施,发现框架的问题并改善。

    3.1 确定开展自动化需要的资源

    确定了使用何种测试工具、测试框架,就需要确定需要的资源,如:

    • 需要几个自动化测试工程师
    • 需要购买的测试工具
    • 测试机(服务器、客户机)
    • 开发自动化框架所需要的时间

    确定了需要哪些资源,就要看当前可用的资源有哪些,如果资源不足应提前申请,如招聘测试人员、购买配置测试机。甚至需要测试人员提前学习新的技术。

    3.2 开发自动化测试脚本

    自动化测试脚本的编写,必须要遵守编码规范,包括脚本的层次、命名等。将(测试)数据层、(系统)操作层和(业务)逻辑层分开,不仅构造结构化的脚本,而且构造程序对象映射、建立对象库和关键字函数库等,全面支持测试数据驱动、关键字驱动的脚本,有利于脚本的开发和维护。

    • 测试脚本的开发,和软件产品本身的开发还有许多相似之处,例如:
      • 自动化测试代码需要跟踪和维护,因此,要采用源代码管理。
      • 测试自动化也会出现缺陷,因此,需要有计划地跟踪缺陷,并且对修改后的缺陷进行验证
      • 用户需要知道如何使用工具和脚本,因此要提供用户使用手册
    • 在脚本开发中增加冗余设计,即使降低一定的性能,也要保证测试执行的稳定性。

    脚本写完了,并不代表脚本开发工作已结束,还须要调试。只有脚本运行稳定,执行的测试结果符合测试要求,才能说明测试脚本开发工作告一段落。

    3.3 测试结果分析

    自动化测试结果一般被分为3种情况——通过(pass)、失败(failed)和不确定/没有被执行TBD/unexecuted)。

    针对测试自动化执行结果,主要集中分析那些没有通过(failed)的结果

    • 分析是不是软件产品本身存在缺陷导致测试执行失败?
    • 是不是之前某个测试执行失败而导致其他大量的测试执行没通过?
    • 查看测试环境是否异常。
    • 如果产品和测试环境都没有问题,就要检查自动化测试脚本,是不是测试脚本误报信息?还是脚本的验证点设置不对?

    有时候,测试执行全部通过,也可能存在问题——脚本的验证点不够或太粗,从而错过许多验证点。

    为了更好地进行测试结果分析:

    • 一方面,尽量记录下测试过程中的重要信息,即存储好的测试执行日志(log)
    • 另一方面,提供规范的测试结果报告格式,使结果一目了然,并在失败的用例提供链接,点击链接,就能直接查看相应的测试用例和执行的log。

    4)总结自动化测试的实施过程

    自动化过程可以从3个角度描述其组成:
    在这里插入图片描述

    • 可以看作一个项目:

      自动化测试的过程就是一个项目的实施过程,经过计划、执行、评估与总结而不断提高的过程。
    • 看作软件开发的过程:

      经过测试需求的分析、自动化测试框架的设计、测试脚本的开发和验证、测试脚本的运行等流程。
      • 而且测试脚本的管理和源代码的管理也是一样的,须要通过CVS、SubVersion等工具进行配置管理,包括版本分支和合并、变更控制等。
    • 依然是一个测试过程:

      从测试需求出发,设计和执行测试用例、报告缺陷,并自动生成测试报告。


    【部分内容参考自】

    • 如何开展自动化测试:http://www.51testing.com/html/98/15165698-3716219.html
    • 自动化测试的实施:https://www.jianshu.com/p/102136c1d7a1
    • 常见自动化测试工具及框架的选用:https://www.cnblogs.com/ustcinfo-qc/p/12124174.html
    展开全文
  • 随着软件发展到不同的阶段对自动化会有不同的测试需求,因此也产生了多种测试类型,然而万变不离其宗,一切皆可自动化

    随着软件发展到不同的阶段对自动化会有不同的测试需求,因此也产生了多种测试类型,然而万变不离其宗,一切皆可自动化

    单元测试

    单元测试也可以看做是代码层的测试,而但凡成熟的语言都附有单元测试框架,例如Java的Junit和TestNG,例如Python的Unittest和Pytest,在很多场合我都曾强调,单元测试才是自动化的核心,从某种意义上讲具备单元测试框架的语言就都能进行单元测试的自动化执行,而这最小单元可以是一个函数、一个方法、一个类或是一个模块

    然而很多公司的研发团队虽然要求单元测试,但很少要求交付单元测试报告的,也有很多公司的单元测试是有自动化测试团队承担的,虽然测试无法穷尽,但测试不同的输入、边界值、非法值、默认值、异常情况等等是基本要求,而这些内容让研发团队自行去做,若非严格的制度限制,又如何能保证高速迭代的环境里真的能达到单元测试目的呢,研发人员的兴趣点绝大多数都在创造力上,他们更喜欢开发新东西,而对质量兴趣不大

    功能测试

    通常情况下,功能测试是测试团队介入的第一个阶段,开发人员将完成的功能特性写成文档输出给测试团队,测试团队根据这些文档开发设计测试用例,最后执行测试用例,对功能进行验证,理想情况下,如果功能特性文的规范写的足够清晰,测试团队应该在功能开发完成之前就开发完测试用例,甚至可以根据这些用例来编写自动化测试用例

    然而尽管大多数情况下,都希望根据质量体系的规范输出详尽的文档,但实操起来确是各种问题:

    • 功能文档不规范,协作之间理解不一致,出现偏差,导致设计的用例变成了无效用例
    • 需求变更,导致功能特性更新,直接影响原先的测试用例设计
    • 新功能不稳定,导致测试用例无法顺利执行

    以第三点新功能不稳定为例,过早的执行自动化测试会被不稳定的新功能阻碍住,一个严重的问题可能导致很多用例无法执行或执行失败,最终仍然需要人来干预执行结果的,认为进行判断甚至重复劳动,这就使得自动化不那么自动了,也就是说需要人值守,遇到问题后手动介入解决
    测试开发也是软件开发的一个类型,其本身的质量不能和被测系统的质量纠缠到一起,否则会让问题的排查更为复杂

    因此,如果非牛逼的研发团队,自动化测试用来辅助测试提升测试效率的角度出发更为实际,将其用于单元测试自动化,接口测试自动化,辅助自动化工具类将成为相当可行的选择,当功能相对稳定后,在全面的实现自动化测试。

    再不然,对于功能测试而言非要强行引入自动化测试,那么测试用例本身的构建和修改一定要非常迅速,自动化测试框架需要提供快速构建用例的能力,以此来响应需求的变更,测试代码的健壮性和灵活性要求非常高,从而应对不稳定的功能产生的阻塞,并且还要对灾难性的错误进行测试环境上的自动恢复

    回归测试

    回归测试时软件开发迭代阶段的一种测试,主要是保障原有的功能没有因为新功能的引入而导致功能回退,在这个阶段自动化测试将得到大量的应用,相对于新功能的不稳定,回归测试的目标是已经发布的或者稳定的功能,相应的测试代码也相对比较稳定,自动化代码也已经经过多轮的完善,执行结果相对也会稳定的多

    可用性测试及冒烟测试

    可用性测试和冒烟测试都是一种快速验证的过程,测试周期很短,为保证这种快速验证,有些测试团队会针对性的快速开发一些用例,然而这些用例往往又和实际的功能测试验证点重复,因此在大量自动化测试用例中迅速抽取核心的测试用例集,然后将测试用例集集成到整个团队的CI中,将测试用例的执行放在编译的job后作为下游任务,当编译结束后自动执行下游任务,而对于一些持续CD情况中,自动化又需要集成在发布上线前的节点,来保证上线的包不存在基本功能问题

    系统测试

    系统测试是一个复杂的测试过程,其主要目的是使被测产品的众多功能甚至是产品本身的集合,以系统级别运行时进行行为级别的验证,其测试类型非常多样且复杂,例如:

    • 相对于功能测试比较固定的测试环境,系统测试环境比较复杂,配置繁多,不固定,不稳定,在这种情况下,自动化测试需要足够灵活的应对不同的环境配置来执行相同的测试目的
    • 测试用例的兼容性要足够强,稳定性足够强,且被测系统的稳定性足够强
    • 压力测试和性能测试的需求,自动化测试应能够快速的集成相应的标准性能测试设备或工具
    • 客户场景模拟测试,即便再聪明的测试工程师能够设计出种类繁多的测试方案,总有想象不到的场景,客户才是麻烦的最佳制造者,因此很多企业会花一些经历收集客户场景,并加入到系统测试的模拟场景中

    可以看出,自动化测试要有足够的弹性来匹配不同的测试场景,而不是通过不同的测试用例来对应不同的场景,同时要具备足够的可扩展性,能够加入不同的第三方工具或者设备来满足更多的测试场景

    展开全文
  • 针对B2B平台的接口自动化测试系统

    千次阅读 2018-08-02 16:02:34
    本文介绍了自动化测试系统的一个案例,针对支付平台,自动化测试系统作为一个商户的角色,进行交互接口测试,并且从返回结果,以及业务系统的DB两个方面进行验证。 1. 自动化测试系统的意义...

    文章来源:公众号-智能化IT系统。

    针对大部分的B2B系统,通过后台接口,例如http等方式交互。传统的黑盒测试难以测试出系统的细节问题。在了解交互接口的情况下,可以针对交互进行自动化测试,把控系统的运行状况。

    本文介绍了自动化测试系统的一个案例,针对支付平台,自动化测试系统作为一个商户的角色,进行交互接口测试,并且从返回结果,以及业务系统的DB两个方面进行验证。

    1. 自动化测试系统的意义

    在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。主要意义如下:

    • 避免重复工作,提高测试效率

    • 保证每次测试地一致性和可重复性

    • 优化资源配置

    • 更好的利用无人值守时间

    • 促进测试人员能力提升

    2. 测试人员需要掌握的技能

    一般测试行业分两个方向,测试开发以及系统测试。测试开发类似于开发自动化测试平台,而系统测试的主要任务是开发自动化测试的脚本,在本案例中,主要是需要模拟请求,并且验证结果。需要如下:

    • 基本的脚本语言,例如python,shell,本案例使用的是python

    • 熟悉被测系统的接口协议,以及接口内容

    • 熟悉被测系统的数据库,以及需要验证的数据对应的数据表以及字段

    3. 自动化测试框架以及流程

    自动化测试的性能指标要求较低,毕竟自动化测试不是无时无刻进行,所以后台的管理站点以及数据库偏轻量级,本案例采用java开发管理后台,mysql作为数据库存储用例,python作为自动化测试的脚本,从mysql数据库中读取用例并执行,并且将用例的执行结果存储在mysql,管理者通过管理后台查看。

    对应的流程刚才已经说明,如下图:

     

    4. 系统结构

    结构如下图。自动化测试在下图的左半部分。

    自动化测试管理后台”一共有五大核心功能模块,分为是:

    • 系统管理

    共分为:用户管理、权限类型管理、预测类型管理、脚本方法列表、日志类型配置等五个子模块;

    该模块主要用于配置系统的用户、权限和预测类型、脚本方法、日志的类型的基本配置。

    • 平台管理

    共分为:平台管理列表、接口配置列表、请求模块列表、校验模块列表等四个子模块;

    该模块主要用于项目平台的配置、对应平台的下单接口名称配置、接口的请求地址详情配置和通用校验脚本的配置。

    • 用例管理

    共分为:用例管理平台一个子模块;

    该模块主要用于配置所有的测试用例、以及用例的功能描述、执行的模块步骤以及对应模块的预测结果。

    • 监控管理

    共分为:执行详情列表、用例平台统计、用例接口统计等三个子模块;

    该模块主要用于查看具体用例的执行详情以及根据平台、用例的用例执行统计数据。

    • 日志管理

    共分为:系统日志等一个子模块;

    该模块主要用于查看后台的详细操作日志。

    5. 自动化测试的用例构成

    6. 自动化测试的用例对应的预期结果

    上文已经提到,该案例主要采用两种方式进行自动化测试

    • 针对被测系统的接口

    主要是在系统构造了请求后,针对返回的信息,进行判定,是否和预期结果一致,主要通过是否包含特定字段方式,通过正则表达式等均可实现。

    • 针对被测系统的数据库

     通过系统数据库的检测,判断系统是否针对请求正常的运转,通过写SQL语句进行判定。

    不同的项目需求不一样,所有的技术和方案都会有不同。本文主要是通过一个案例,来打开思路,说明自动化测试系统的价值,以及在B2B平台应用的可行性。进一步了解请关注公众号。

    ———————————————————

    公众号-智能化IT系统。每周都有技术文章推送,包括原创技术干货,以及技术工作的心得分享。扫描下方关注。

    展开全文
  • 自动化测试】自动化测试框架与工具

    千次阅读 多人点赞 2021-05-06 21:01:01
    文章目录1)什么是自动化测试框架?1.1 什么是框架?1.2 什么是自动化测试框架?1.2.1 优点:1.2.2 框架的基本组件1、需要配置文件管理:2、业务逻辑代码和测试脚本分离3、报告和日志文件输出4、自定义的库的封装5、...
  • IOS 自动化测试

    千次阅读 2020-03-25 16:48:49
    自动化测试节省时间节省真机的成本,而且更高效的覆盖所有的iOS机型测试,避免每次上线前重复的人工回归测试,保证每次上线的版本稳定运行。
  • 常用自动化测试工具

    万次阅读 多人点赞 2019-03-04 15:19:20
    Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供...
  • 自动化测试有效

    千次阅读 2013-06-14 10:44:31
    自动化测试产生作用的方式存在误解,对自动化测试能够产生作用所要求的条件存在误解,自动化测试分析设计的随意自动化测试开发维护的低标准,对自动化测试资产的低准出条件……本文将就自动化测试有效简单...
  • 自动化测试实施流程

    千次阅读 2018-03-27 00:18:09
    在上篇文章中,我们已经介绍过Selenium的一些基础知识,以及是否能够开展... 开展自动化测试的时间点很关键,需要在系统已经过多版本的系统测试,达到稳定之后。 2.2、可行分析  在进行项目自动化测试之前,...
  • 一分钟了解自动化测试

    万次阅读 多人点赞 2018-07-29 11:34:30
    写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接来下用通俗的方式来介绍自动化测试…… ...
  • 软件自动化测试自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程...
  • 前端自动化测试实践

    万次阅读 多人点赞 2018-10-31 23:35:49
    通过前端自动化测试,来解放自我
  • 在编写用例之间,笔者再次强调几点编写自动化测试用例的原则: 1、一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器。 2、一个脚本脚本只验证一个功能点,不要试图用户登陆系统后把所有的功能...
  • 功能测试自动化要点 1 什么时候开始使用自动化测试? 开始之前,要考虑5点 1.1 功能测试自动化类似软件开发过程 录制,回放是不能满足自动化测试的需求的,所以要测试人员掌握开发知识,和编程技巧。 1.2...
  • 自动化测试用例设计

    千次阅读 2018-09-19 16:22:09
    一、了解自动化测试的目的和作用  自动化测试是为了让测试人员从繁琐重复的机械式测试过程中解脱出来,把时间和精力投入到更有...所以对于自动化的设计,主要集中在功能正确方面。  在自动化测试的流程中,其...
  • 自动化化测试的局限

    万次阅读 2020-09-23 10:08:00
    自动化测试的局限 但是,即使只是简单地确认软件的行为符合预期,自动化测试也有一些限制。由于测试套件中编码了期望值,因此存在第一个限制。在大多数情况下,实现该功能的开发人员就是编写测试的人。对于开发...
  • 自动化测试框架思路

    千次阅读 2016-08-14 14:24:20
    第一次写类似的文章,语言组织能力不够,就从最简单的开始一路白话文把自己搭框架时的想法一路写下来,可能比较啰嗦,...所以自动化测试框架的定义为:由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试
  • 自动化测试

    万次阅读 2019-06-14 14:03:45
     (4) 将烦琐的任务自动化,让测试人员投入更多的精力设计出更多更好的测试用例,提高测试准确和测试人员的积极;  (5) 自动测试具有一致和可重复的特点,而且测试更客观,提高了软件的信任度。 ...
  • 测试自动化并不像某些人想象的那样容易或经济。仅应在必要和适用的情况下使用。而且,最重要的是,它不能替代手动测试。相反,它补充了手动测试。自动化框架和正确的测试自动化工具对于增强测试自动化...
  • Web自动化测试实战(一)

    万次阅读 多人点赞 2019-08-23 15:41:39
    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 目录 一丶认识web自动化测试 1. 什么是自动化测试? 2.为什么进行自动化测试?...3.自动化测试的分类 ...一丶认识web自动化测试...软件自动化测...
  • Android自动化测试初探

    千次阅读 2016-11-21 11:18:42
    本文内容:Android自动化测试框架初探 版权声明:本文为原创文章,未经允许不得转载 博客地址:http://blog.csdn.net/kevindgk 初步了解 什么是自动化测试 优点 缺点 前提条件 应用场景 基本原理 目前主流...
  • 自动化测试.工具

    千次阅读 2016-07-03 11:22:57
    关键词:自动化测试,脚本,测试工具,QTP 自动化测试一般是指通过计算机软件来模拟人的测试行为,替代人的测试执行工作。 对程序的新版本运行已有的测试(回归测试),能大大降低回归测试的开销。可以运行...
  • 在这个自动化测试框架中。 在config目录中存放的是测试配置相关的文件,配置文件可以使用ini、xml、yml等文件类型。例如,要测试的网址、调试日志的文件名、日志的输出格式等 在data目录中存放的是需要测试的数据。...
  • 自动化测试与自动化测试生命周期

    千次阅读 2008-04-13 13:47:00
    1.1 自动化测试的定义及概述1.1.1 软件测试的定义与分类 软件测试[2],就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复查,是软件质量保证的关键步骤。 定义1:软件测试是为了发现错误而在规定...
  • 自动化测试系统的软件架构(转)

    千次阅读 2014-06-05 21:54:38
     随着产品可测性设计和仪表程控制技术的不断完善和提高,自动化测试系统越来越广泛的被应用于从产品设计研发到生产制造验证的各个环节。自动化测试系统之所以风靡,是因为相比于手动测试系统,它具备以下优点: ...
  • 关键字驱动自动化测试

    千次阅读 2018-08-17 11:37:33
    为 了提高测试效率和准确,越来越多的测试工作引入了自动化测试的思想和方法,随着自动化测试工具的发展,自动化测试更加容易实现更高效。实践证明,软件自 动化测试技术帮助软件开发和测试人员在更短的时间内开发...
  • Python selenium —— selenium与自动化测试成神之路

    万次阅读 多人点赞 2016-09-17 00:33:04
    忽然想谈谈自动化的学习路径,因为发现很多人总是急于求成,不懂该如何学习。在群里总是会遇到很多人问低级问题,写了一个selenium脚本,却执行失败,跑到群里来问,大神,这里为什么会报错?很多都是明显的语法问题...
  • 关于自动化测试的定位及一些思考

    千次阅读 2017-08-31 14:17:10
    首先是想到Web UI自动化,这就为什么我一说自动化,公司一般就会有很多人反对,因为自动化的成本实在太高了,其实自动化是分为三个层面的(UI层自动化、接口自动化、单元测试),不是每个层面的自动化都是遥不及的...
  • iOS UI自动化测试

    千次阅读 2016-10-25 09:18:43
    转载地址:... ...随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化工具的数量还是质
  • 自动化测试的优缺点

    千次阅读 2017-07-22 20:34:29
    1、对回归测试更方便:进行回归测试,要测试系统的所有功能模块,周期较长的回归测试工作量大,测试比较频繁,适合自动化测试。由于测试的脚本和用例都是设计好的,测试期望的结果也可以预料,将回归测试自动化可以...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 686,799
精华内容 274,719
关键字:

系统可测性自动化