开源自动化测试框架介绍

这篇具有很好参考价值的文章主要介绍了开源自动化测试框架介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

框架在精而不在多,毕竟还是得以我们测试工程师平常用的最多的为基准。精通以下7个框架,应该能满足你工作中的基本需求了。

一、Junit(白盒测试、API自动化、UI自动化)

【官网】

https://junit.org/junit5/

【简介】

Junit是一个面向Java编程语言的单元测试框架。

单元测试:针对最小的功能单元编写测试代码。Java程序最小的功能单元是方法,对Java编程语言进行单元测试,说白了就是对Java的方法进行测试。

用 Junit 编写单元测试的好处有:

  • 非常简单地组织测试代码,并随时运行它们。
  • 可以自动生成测试报告,收集成功的测试用例和失败的测试用例,统计测试成功率和代码覆盖率。
  • 几乎所有的IDE工具都集成了Junit。
  • 任何Java开发者都应当学习并使用Junit编写单元测试;同时,Java 技术栈的测试或者测试开发工程师,也可以学习 Junit 来作为自动化测试底层框架。

Junit目前最新版本是5。

【使用场景】

  • 常用于单元测试(白盒测试)
  • 自动化测试的用例管理和用例执行框架(API自动化、UI自动化)。
    开源自动化测试框架介绍,UI自动化,开源
    开源自动化测试框架介绍,UI自动化,开源

二、Selenium(Web自动化、爬虫)

【官网】

https://www.selenium.dev/

【简介】

Selenium 是使用最为广泛的 Web 自动化测试(UI自动化)框架之一。

Selenium 可以完全模拟用户对主流浏览器进行操作,主要包括鼠标事件和键盘事件。

  • 鼠标事件:右击、双击、拖动、悬停。
  • 键盘事件:Keys()类提供了键盘上几乎所有按键的方法,可以模拟各种键盘输入。

Selenium 支持八种元素定位方式:

  • id定位: find_element_by_id()
  • name定位: find_element_by_name()
  • class定位:find_element_by_class_name()
  • tag定位:find_element_by_tag_name()
  • link定位:find_element_by_link_text()
  • partial_link定位:find_element_by_partial_link_text()
  • xpath定位:find_element_by_xpath()
  • CSS定位:find_element_by_css_selector()
  • 兼容性方面,Selenium 支持 Chrome、FireFox、Safari 等主流浏览器;

并且 Selenium 对 Java 和 Python 都提供了便捷的API调用。

【使用场景】

  • UI 自动化
  • 爬虫
    开源自动化测试框架介绍,UI自动化,开源

三、TestNG(白盒测试、API自动化、UI自动化)

【官网】

https://testng.org/doc/index.html

【简介】

TestNG 是 Java中一个很流行实用的单元测试框架。

它的灵感来源于 Junit ( java 的单元测试框架) 和 Nunit ( .net 的单元测试框架)。

但是它又在此基础上引入了新的东西,使得它更加强大。

关于注解特性方面,可以参考下表:
开源自动化测试框架介绍,UI自动化,开源

TestNG 和 JUnit 还有两个比较明显的区别:

  • 在Junit 4 中,如果我们需要在方法前面使用 @BeforeClass 和 @AfterClass ,那么该测试方法则必须是静态方法。TestNG 在方法定义部分则更加的灵活,它不需要类似的约束。
  • TestNG 中子类不会运行父类中的 @BeforeClass 和 @AfterClass, 而在Junit中会先运行父类的@BeforeClass,再运行自己的 @BeforeClass;而 @AfterClass 是先运行自己的,再运行父类的。
    经过一番对比之后,TestNG 在参数化测试、依赖测试以及套件测试(组)方面功能比 Junit 更加强大,并且包含了几乎 Junit 的所有功能,所以建议优先选择 TestNG。

【使用场景】

常用于单元测试(白盒测试)
自动化测试的用例管理和用例执行框架(API自动化、UI自动化)。

四、Cucumber(API自动化、UI自动化)

【官网】

https://cucumber.io/

【简介】

自动化测试用例越写越多,也越来越难维护。

开发看不懂测试写的代码,测试也看不懂测试写的代码,那是因为代码不讲人话。

如何才能做到面向“注释”编程?BDD给出了答案。

BDD:Behavior-Driven Development ,也就是行为驱动开发。

BDD使用的叫做Gherkin的语言,它的理念是使用自然语言来描述功能,而且强调的是使用例子来说明需求功能。是不是跟敏捷开发中的用户故事(User Story)很像?嗯,因为它们都是一个妈生的。

使用这种方法可以让非技术人员、客户可以参与到需求的确认与验收当中。

以下是用 Cucumber 写出的 BDD 风格的测试用例 Demo :

// Given 前置(预置)条件。(一般用于定义一个变量等)
@Given("today is Sunday")  
public void today_is_Sunday() {
    // Write code here that turns the phrase above into concrete actions
    throw new io.cucumber.java.PendingException();
}
 
// When 当xxx的时候(相当于 if )
@When("I ask whether it's Friday yet") 
public void i_ask_whether_it_s_Friday_yet() {
    // Write code here that turns the phrase above into concrete actions
    throw new io.cucumber.java.PendingException();
}
 
// Then 那么将要做xxx操作。
@Then("I should be told {string}")
public void i_should_be_told(String string) {
    // Write code here that turns the phrase above into concrete actions
    throw new io.cucumber.java.PendingException();
}

就像讲故事一样,来梳理代码逻辑。

【使用场景】

自动化测试用例管理和用例执行(API自动化、UI自动化)。
开源自动化测试框架介绍,UI自动化,开源

五、pytest(白盒测试、API自动化、UI自动化)

【官网】

https://docs.pytest.org/en/6.2.x/

【简介】

pytest 是 python 语言中一款强大的单元测试框架(也是最好用的单元测试框架,不服来战),用来管理和组织测试用例,可应用在单元测试、自动化测试工作中。

当然,如果你是个 pythoner 的话,你可能也多多少少听说过 unittest。

其实论用途而言,pytest 和 unittest 用途不多,都是优秀的单元测试框架。

但是 pytest 在 unittest 的基础上,丰富了不少功能,而且比 unittest 更简洁高效,pytest + allure 还可以输出更加美观的测试报告,pytest在数据驱动上的支持,也是略优于unittest。

所以还是可以优先选择 pytest。

【使用场景】

常用于单元测试(白盒测试)
自动化测试的用例管理和用例执行框架(API自动化、UI自动化)。
开源自动化测试框架介绍,UI自动化,开源

六、Appium(移动端的UI自动化测试)

【官网】

http://appium.io/

【简介】

在移动端的 UI自动化 测试领域,带头大哥当属 Appium。

Appium 是基于 Nodejs 的一款 UI自动化 测试框架。

支持多平台(Android、iOS等)

支持多语言(python、java、ruby、js、c#等)

Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。
开源自动化测试框架介绍,UI自动化,开源
之前曾看过一则新闻,Appium 已经进军 AI 测试(基于AI查找控件)的领域了,不愧是龙头大哥。

【使用场景】

移动端的UI自动化测试
一般会结合单元测试框架去开发UI自动化测试框架。

Java:TestNG + Appium + Jenkins

Python:Pytest + Appium + Allure + Jenkins
开源自动化测试框架介绍,UI自动化,开源

七、ATX(移动端的UI自动化测试)

【官网】

https://github.com/NetEaseGame/ATX

【简介】

ATX(AutomatorX) 是一款(网易)开源的自动化测试工具,支持测试iOS平台和Android平台的原生应用、游戏、Web应用。

使用Python来编写测试用例,混合使用图像识别,控件定位技术来完成游戏的自动化。

附加专用的IDE来完成脚本的快速编写。

ATX的生态圈:

[底层驱动]

  • 安卓(Android) https://github.com/openatx/uiautomator2 简称u2
  • 苹果(iOS) https://github.com/openatx/facebook-wda

[元素定位]

  • Weditor https://github.com/openatx/weditor

[设备管理]

  • atxserver2 https://github.com/openatx/atxserver2

[测试框架]

  • ATX-Test pengchenglin/ATX-Test

【使用场景】

移动端的UI自动化测试
一般会结合单元测试框架去开发UI自动化测试框架。

Python:Pytest + uiautomator2/wda + Allure + Jenkins文章来源地址https://www.toymoban.com/news/detail-526256.html

总结

1、Java的白盒测试、API自动化、UI自动化:

  • Junit(对Java的方法进行测试);
  • TestNG(相比Junit,参数化测试、依赖测试以及套件测试更好用,建议优先选这个);

2、python的白盒测试、API自动化、UI自动化:

  • pytest(功能更多,更简洁高效,优于unittest )。

3、API自动化、UI自动化:

  • Cucumber(面向“注释”编程)。

4、移动端的UI自动化测试:

  • Appium(基于 Nodejs,多平台多语2言,OSX、Win和Linux上也能用 )
  • ATX(只支持iOS、Android)

5、UI自动化、爬虫:

  • Selenium(兼容性好,Web自动化必选)。

到了这里,关于开源自动化测试框架介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试介绍、selenium用法(自动化测试框架+爬虫可用)

    1、什么是自动化测试? 程序测试程序、代码代替思维、脚本代替人工 核心:质量和效率 作用:降低成本、节省人力时间、推动CI和DevOps、准确性和可靠性、模拟人工难以实现的手段、快速持续迭代发布能力、衡量产品的质量、提升测试效率、提高测试覆盖率 2、手工测试

    2024年03月08日
    浏览(59)
  • selenium测试框架快速搭建(UI自动化测试)

    一、介绍         selenium目前主流的web自动化测试框架;支持多种编程语言Java、pythan、go、js等;selenium 提供一系列的api 供我们使用,因此在web测试时我们要点页面中的某一个按钮,那么我们只需要获取页面,然后根据id或者name找到对应的按钮,然后执行click操作就可以完成

    2024年02月02日
    浏览(50)
  • 分享8款开源的自动化测试框架

    在如今开源的时代,我们就不要再闭门造车了,热烈的拥抱开源吧!本文针对性能测试、Web UI 测试、API 测试、数据库测试、接口测试、单元测试等方面,为大家整理了github或码云上优秀的自动化测试开源项目,希望能给大家带来一点帮助。 1、项目名称:基于Jmeter实现的在线

    2024年02月05日
    浏览(38)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月07日
    浏览(53)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化)

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月04日
    浏览(50)
  • selenium-基于UI的自动化测试框架

      自动化测试是指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果,将人为驱动的测试行为转化为机器执行的过程   自动化测试包括UI自动化、接口自动化、单元测试自动化。按照这个金字塔模型来进行自动化测试

    2024年02月05日
    浏览(42)
  • 《共建开源》系列:Airtest-Framework - UI自动化框架系统

    Airtest- Framework 是 基于 unittest、Flask、Airtest 搭建的 开源的 UI 自动化框架系统 提供 HTTP API 接口,实现自动解析包名并自动执行 相应目录下的 Case 。 目前仅支持单台设备连接。 多个任务会自动排队处理。 Python = 3.8 1、下载项目: 2、进入项目目录: 3、安装依赖项 手机连接到

    2024年01月16日
    浏览(36)
  • python appium UI 自动化测试框架讨论

    目录 前言: 框架共性总结 Auto_Analysis 权限弹窗识别 前言:  Python Appium UI自动化测试框架是一种用于测试移动应用程序的工具,它结合了Python编程语言和Appium测试框架的功能。 框架共性总结 1 自动找设备 连接设备 2 自动启 appium server 3 用例框架 unittest pytest 4 用例组织 yml 读

    2024年02月16日
    浏览(44)
  • UI 自动化测试框架:PO 模式+数据驱动!

    PO(PageObject)设计模式将某个页面的所有元素对象定位和对元素对象的操作封装成一个 Page 类,并以页面为单位来写测试用例,实现页面对象和测试用例的分离。 PO 模式的设计思想与面向对象相似,能让测试代码变得可读性更好,可维护性高,复用性高。 PO 模式可以把一个

    2024年02月03日
    浏览(28)
  • Python Selenium搭建UI自动化测试框架

    自动化测试是软件测试中非常重要的一部分,可以提高测试效率和测试覆盖率。在UI自动化测试中,Selenium是非常流行的工具。本文将介绍如何使用Python和Selenium搭建UI自动化测试框架。 在开始搭建UI自动化测试框架之前,需要先安装Python和Selenium。可以从Python官网下载Python安装

    2023年04月27日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包