自动化测试工具分析和总结

目录

JUnit

简介

Mockito

简介

Robolectric

Selenium 

简介


JUnit

简介

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。通常我们写完代码想要测试这段代码的正确性,那么必须新建一个类,然后创建一个 main() 方法,然后编写测试代码。如果需要测试的代码很多呢?那么要么就会建很多main() 方法来测试,要么将其全部写在一个 main() 方法里面。这也会大大的增加测试的复杂度,降低程序员的测试积极性。而 Junit 能很好的解决这个问题,简化单元测试,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。

目前主流的版本时JUnit4

Mockito

简介

Mockito是根据MIT许可证发布的Java开源测试框架。 Mockito通过允许开发人员预先确定被测系统(SUT)的行为来区别于其他测试框架。

Mockito是GitHub上使用最广泛的Mock框架,并与JUnit结合使用.Mockito框架可以创建和配置mock对象.使用Mockito简化了具有外部依赖的类的测试开发!

步骤

一般使用Mockito的步骤:

  1. 模拟任何外部依赖并将这些模拟对象插入测试代码中
  2. 执行测试中的代码
  3. 验证代码是否按照预期执行

Robolectric

简介

Robolectric可以非常方便的模拟Android环境进行单元测试,JUnit只能进行java的单元测试。在Android设备上跑测试用例太慢了,编译、部署、启动app要花费很多时间。Robolectric是一个单元测试框架,测试是运行在jvm上的,只需要几秒钟。它的设计思路便是通过实现一套JVM能运行的Android代码,从而做到脱离Android环境进行测试。

测试驱动android开发
在安卓模拟器或者真机上跑测试用例速度很慢。构建、部署、启动app,通常需要花费一分钟或者更久。这不是TDD(测试驱动开发)模式.Robolectric提供一种更好的方式。

可能你一直尝试在java IDE中使用junit或者testng直接跑测试用例,但是一直报java.lang.RuntimeException: Stub!异常。

这个异常是因为在jdk中没有android运行环境。而现在Robolectric这款android单元测试工具,模拟了android sdk中的jar包,可以直接在jvm中运行测试用例,这样就大大节省了时间。

SDK,Resource和Native Method模拟
Robolectric可以处理控件展示、资源加载和很多使用native C实现的真机上的其他功能。所以我们可以使用Robolectric来模拟真机上的大部分操作。我们可以很方便地获取Robolectric的源码,直接查看它的模拟机制,所以使用Robolectric,我们也可以模拟错误条件和一些真实的传感器信号。

脱离模拟器执行测试用例
Robolectric允许我们在项目工程中或者持续集成(CI如hudson、jenkins)中使用jvm来执行测试用例,所以就省掉了打包、安装的过程,将测试用例的执行时间由分钟级降到秒级。

对比:

Selenium 

简介

Selenium`是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web 的管理任务自动化。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium能够在一个或多个浏览器中执行这些测试。

Selenium is a suite of tools to automate web browsers across many platforms.runs in many browsers and operating systems
can be controlled by many programming languages and testing frameworks.


Selenium 官网:http://seleniumhq.org/
Selenium Github 主页:https://github.com/SeleniumHQ/selenium
Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架。它是一款用于运行端到端功能测试的超强工具。您可以使用多个编程语言编写测试,并且 Selenium 能够在一个或多个浏览器中执行这些测试。

Selenium共包括三个版本:Selenium1.0 Selenium2.0 Selenium3.0

Selenium 1.0 = Selenium IDE + Selenium Grid + SeleniumRC

Selenium 2.0 = Selenium 1.0 + WebDriver

Selenium 3.0 = Selenium 2.0 + Selenium RC(Remote Control)

Selenium3现状

  • 去掉了对selenium rc的支持。
  • 全面拥抱java 8。
  • 支持macOS (Sierra or later),支持官方的safaridriver。
  • 通过ms官方的webdriverserver支持Edge浏览器。
  • 只支持ie 9.0版本以上。
  • 通过Mozilla官方的geckodriver来支持firefox。
  • 尽管firefox driver非常的稳定高效,但firefoxdriver毕竟是google实现的。geckodriver的出现是必然的结果,因为最新版本的firefox换引擎了,老的firefox driver应该是不支持新引擎的。

WebDriver意义

  • •webdriver协议现在已经成为业内公认的浏览器ui测试的标准实现。webdriver协议是google对开源测试领域的重要贡献。
  • •各种官方支持意味着以后的浏览器ui测试的速度和稳定性会有较大的提升。
  • •浏览器ui自动化测试已经成为了行业标配。
  • • selenium专注web测试。

简单来说,我们总是从创建WebDriver开始的,并通过WebDriver导航页面和窗口,以及查找元素等等

参考:Selenium全知 Selenium用法 Selenium3笔记

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 自动化测试领域的应用可以带来很多好处,包括: 1. 提高测试效率:自动化测试可以自动执行测试用例,从而节省了手动测试的时间和成本。 2. 提高测试质量:自动化测试可以更快地发现缺陷和问题,减少了人为的误差。 3. 节省成本:自动化测试可以减少人力资源的需求,从而节省了成本。 4. 改善测试范围:自动化测试可以覆盖更广泛的测试用例,包括大量的重复测试。 5. 增加测试可靠性:自动化测试可以确保测试结果的一致性和可重复性,从而提高测试的可靠性。 在应用自动化测试时,需要考 ### 回答2: 自动化测试领域的应用是指利用各种软件和工具来代替人工操作和判断,对软件系统进行自动化测试。这样可以提高测试效率和准确性,减少人力成本和测试周期,并且能够实现适用于不同平台和环境的测试。 首先,分析自动化测试领域的应用,需要考虑以下几个方面: 1. 测试对象:自动化测试适用于各种软件系统,包括桌面应用程序、移动应用程序、Web应用程序等。可以对软件系统的各个功能模块,如登录、注册、下单等进行检测和验证。 2. 自动化测试工具自动化测试工具是实现自动化测试的关键。常用的自动化测试工具有Selenium、Appium、Jenkins等。这些工具提供了丰富的功能和API接口,可以模拟用户交互、执行测试脚本、生成测试报告等。 3. 测试脚本编写:自动化测试需要编写测试脚本来实现自动化测试的过程。测试脚本可以使用各种编程语言来编写,如Java、Python等。编写测试脚本需要结合被测软件系统的特点和测试需求,通过调用自动化测试工具的接口实现自动化测试。 4. 测试用例设计:测试用例是自动化测试的基础,用于验证软件系统的功能和性能。在分析自动化测试领域的应用时,需要充分考虑被测软件系统的功能点和边界条件,设计出全面、有效的测试用例。 5. 测试环境准备:自动化测试需要在特定的测试环境中进行,包括软件、硬件、操作系统等。在分析自动化测试领域的应用时,需要确保测试环境的准备和配置工作完成,以保证自动化测试的顺利进行。 总结起来,自动化测试领域的应用通过利用各种工具和技术,实现对软件系统的自动化测试和验证。在分析应用时需要考虑测试对象、测试工具测试脚本、测试用例设计和测试环境准备等方面。通过合理的自动化测试,可以提高测试效率,保证软件质量。 ### 回答3: 自动化测试领域的应用是指利用计算机软件和工具来执行测试任务,代替人工进行测试的过程。通过自动化测试可以提高测试效率、减少测试成本,并提高测试质量。 首先,自动化测试可以帮助测试人员在较短的时间内完成大量的重复性测试任务。相比于手动测试自动化测试可以更快速地执行大量测试用例,并及时生成测试报告,减少了测试人员的工作负担,提高了测试效率。 其次,自动化测试可以降低测试成本。虽然自动化测试可能需要一定的投资,但一旦实施完成,后续的测试成本会大大降低。自动化测试可以减少测试人员的工作量,节省人力资源,并降低人工测试错误的可能性,从而减少后期的修复成本。 此外,自动化测试可以提高测试的可靠性和一致性。由于自动化测试是由计算机软件执行的,能够以相同的方式和步骤进行测试,避免了人工测试时的主观因素和差异性,从而保证了测试过程和结果的一致性。 然而,自动化测试也有一定的限制和注意事项。首先,不是所有的测试任务都适合自动化自动化测试适合于稳定、重复性较高的测试场景,对于需求变更较为频繁、易变的测试任务,手动测试更加灵活和适应性强。其次,在进行自动化测试前需要进行一定的规划和准备工作,确定测试目标、测试工具测试环境,并设计合适的测试用例和脚本。 综上所述,自动化测试领域的应用可以提高测试效率、降低测试成本,提高测试质量和可靠性。然而,自动化测试也需要在适合的场景下进行,并需要合适的规划和准备工作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FeelTouch Labs

一杯咖啡的鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值