7个超好用的测试框架(总有一款适合你1)

发表于:2021-10-21 09:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:程序员臻叔    来源:知乎

  昨天吃饭的时候和同事聊到测试框架,于是决定根据自己的实战工作经验总结一波好用的测试框架。本来文章里一共11个的,最后想想还是剔除掉了Maxim、Cypress、Gauge和ZTF(Zentao Testing Framework)。
  工具在精而不在多,毕竟还是得以我们测试工程师平常用的最多的为基准。
  另外,当你学习一个新的工具时,建议你直接看官方文档。(以下工具的官网链接,我都帮大家列出来了)
  虽然官网常常是英文的,但是它也是最权威、最官方的。百度直接查的话,有的文章常常有错误,或者说文中所说内容已经过时了,小白很容易被误导。而且程序员难免要接触英文,当你习惯看官方文档后,你会发现自己的英文水平也在不知不觉间提高了。
  好了,不说废话直接进入正文:
  目录如下:
  Junit
  Selenium
  TestNG
  Cucumber
  pytest
  Appium
  ATX
  我们一个个来说:
  一、Junit(白盒测试、API自动化、UI自动化)
  【官网】
  https://junit.org/junit5/
  【简介】
  Junit是一个面向Java编程语言的单元测试框架。
  单元测试:针对最小的功能单元编写测试代码。Java程序最小的功能单元是方法,对Java编程语言进行单元测试,说白了就是对Java的方法进行测试。
  用 Junit 编写单元测试的好处有:
  · 非常简单地组织测试代码,并随时运行它们。
  · 可以自动生成测试报告,收集成功的测试用例和失败的测试用例,统计测试成功率和代码覆盖率。
  · 几乎所有的IDE工具都集成了Junit。
  任何Java开发者都应当学习并使用Junit编写单元测试;同时,Java 技术栈的测试或者测试开发工程师,也可以学习 Junit 来作为自动化测试底层框架。
  Junit目前最新版本是5。
  【使用场景】
  · 常用于单元测试(白盒测试)
  · 自动化测试的用例管理和用例执行框架(API自动化、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 自动化
  · 爬虫
  三、TestNG(白盒测试、API自动化、UI自动化)
  【官网】
  https://testng.org/doc/index.html
  【简介】
  TestNG 是 Java中一个很流行实用的单元测试框架。
  它的灵感来源于 Junit ( java 的单元测试框架) 和 Nunit ( .net 的单元测试框架)。
  但是它又在此基础上引入了新的东西,使得它更加强大。
  关于注解特性方面,可以参考下表:
  TestNG 和 JUnit 还有两个比较明显的区别:
  在Junit 4 中,如果我们需要在方法前面使用 @BeforeClass 和 @AfterClass ,那么该测试方法则必须是静态方法。TestNG 在方法定义部分则更加的灵活,它不需要类似的约束。
  TestNG 中子类不会运行父类中的 @BeforeClass 和 @AfterClass, 而在Junit中会先运行父类的@BeforeClass,再运行自己的 @BeforeClass;而 @AfterClass 是先运行自己的,再运行父类的。
  经过一番对比之后,TestNG 在参数化测试、依赖测试以及套件测试(组)方面功能比 Junit 更加强大,并且包含了几乎 Junit 的所有功能,所以建议优先选择 TestNG。
  【使用场景】
  · 常用于单元测试(白盒测试)
  · 自动化测试的用例管理和用例执行框架(API自动化、UI自动化)。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号