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

这篇具有很好参考价值的文章主要介绍了7个超好用的测试框架(总有一款适合你)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

昨天吃饭的时候和同事聊到测试框架,于是决定根据自己的实战工作经验总结一波好用的测试框架。本来文章里一共11个的,最后想想还是剔除掉了Maxim、Cypress、Gauge和ZTF(Zentao Testing Framework)。

工具在精而不在多,毕竟还是得以我们测试工程师平常用的最多的为基准。

另外,当你学习一个新的工具时,建议你直接看官方文档。(以下工具的官网链接,我都帮大家列出来了)

虽然官网常常是英文的,但是它也是最权威、最官方的。百度直接查的话,有的文章常常有错误,或者说文中所说内容已经过时了,小白很容易被误导。而且程序员难免要接触英文,当你习惯看官方文档后,你会发现自己的英文水平也在不知不觉间提高了。

好了,不说废话直接进入正文:

目录如下:

1、Junit
2、Selenium
3、TestNG
4、Cucumber
5、pytest
6、Appium
7、ATX

我们一个个来说:

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

【官网】

https://junit.org/junit5/

【简介】

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

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

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

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

Junit目前最新版本是5。

【使用场景】

常用于单元测试(白盒测试)
自动化测试的用例管理和用例执行框架(API自动化、UI自动化)。
7个超好用的测试框架(总有一款适合你)

二、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 自动化

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

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

【官网】

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

【简介】

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

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

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

关于注解特性方面,可以参考下表:
7个超好用的测试框架(总有一款适合你)
TestNG 和 JUnit 还有两个比较明显的区别:

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

【使用场景】

常用于单元测试(白盒测试)

自动化测试的用例管理和用例执行框架(API自动化、UI自动化)
7个超好用的测试框架(总有一款适合你)

四、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自动化)。
7个超好用的测试框架(总有一款适合你)

五、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自动化)。
7个超好用的测试框架(总有一款适合你)

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

【官网】

http://appium.io/

【简介】

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

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

支持多平台(Android、iOS等)

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

Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。
7个超好用的测试框架(总有一款适合你)
之前曾看过一则新闻,Appium 已经进军 AI 测试(基于AI查找控件)的领域了,不愧是龙头大哥。

【使用场景】

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

Java:TestNG + Appium + Jenkins

Python:Pytest + Appium + Allure + Jenkins
7个超好用的测试框架(总有一款适合你)

七、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
7个超好用的测试框架(总有一款适合你)
以上7个测试框架,都是臻叔实际工作中最常用到的。如果你是刚入门测试的同学,可能看到这里会一头雾水。

没关系,你可以先大概了解下这些最常用的测试框架,之后臻叔也会陆续把我之前学习这些工具的笔记整理好,发出来供大家参考。

最后再小结一下:

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

Junit(对Java的方法进行测试);
TestNG(相比Junit,参数化测试、依赖测试以及套件测试更好用,建议优先选这个);
2)python的白盒测试、API自动化、UI自动化:

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

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

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

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

Appium(基于 Nodejs,多平台多语言,OSX、Win和Linux上也能用 )
ATX(只支持iOS、Android)
5)UI自动化、爬虫:

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

学习安排上

如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

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

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群即可自行领取文章来源地址https://www.toymoban.com/news/detail-445569.html

到了这里,关于7个超好用的测试框架(总有一款适合你)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • AI 工具合辑盘点,总有一款适合你

    人工智能技术的发展已经改变了我们的生活,越来越多的AI工具正在被广泛应用于各个领域。ChatGPT这样的代表性AI模型正在大放异彩,为我们带来了无数的便利和惊喜。在本文中,我们将介绍一系列优秀的AI工具,这些工具可以帮助你完成各种任务,从图像生成到自然语言处理

    2024年02月08日
    浏览(131)
  • ARM/FPGA/DSP板卡选型大全,总有一款适合您

    创龙科技ARM/FPGA/DSP嵌入式板卡选型大全2023.2版本正式发布!接下来,跟着我们一起看看有哪些亮点吧! 6大主流工业处理器原厂 创龙科技现有30多条产品线,覆盖工业自动化、能源电力、仪器仪表、通信、医疗、安防等工业领域,与6大主流工业处理器原厂强强联合,包括德州

    2023年04月15日
    浏览(47)
  • 13个终极大数据项目理念-初级or 高级总有一款适合你

    “大数据”一词对我们来说并不陌生,尤其近些年来随着数字经济的高速发展,大数据已经与我们完美地结合在一起,充斥于生活的点点滴滴:刷脸结算、实时监控、智能快递、精准营销、DNA 序列解码、运动健康管理……大数据是一个令人兴奋的话题,它能帮我们探究出意想

    2024年02月16日
    浏览(41)
  • 测量鼠标DPI的三种方法,总有一种适合你

    DPI(dots per inch)代表每英寸点数,是一种用于各种技术设备(包括打印机)的测量方法,但对于鼠标来说,指的是鼠标在桌面上移动1英寸的距离的同时,鼠标光标能够在屏幕上移动多少“点”。 许多游戏鼠标都有按钮,可以让你在玩游戏时动态切换DPI,但如果你不知道鼠标

    2024年01月16日
    浏览(39)
  • 解决电脑无故自动关机或重启的15种方法,总有一种适合你

    你的Windows PC是否在没有警告的情况下关闭或重新启动?这背后有几个潜在的原因。例如,它可能是软件/硬件冲突、过热或硬盘驱动器错误。本故障排除指南将概述在Windows 10/11中修复自动关闭和重新启动的多个解决方案。 如果你的计算机经常关闭,则必须在安全模式下启动计

    2024年04月23日
    浏览(32)
  • AI绘画MidJourney 酷炫艺术风格效果,总有一款你喜欢

    文 / 高扬   今天六一儿童节,祝各位大朋友节日快乐。 这次以儿童为主题,看看MidJourney的绘画风格,在这里,我使用的默认V5.1版本。 图画场景是一个男孩和一个女孩在田野玩耍,对应的英文是: A boy and a girl are playing in the field 。 先欣赏MidJourney默认生成的图片效果。 接下

    2024年02月09日
    浏览(43)
  • Java中常见字符串拼接九种方式,总有一款你喜欢!

    在 Java 编程中,字符串拼接是一项非常基础的操作,它涉及到了很多日常开发工作中常见的场景,例如拼接 SQL 语句、构建 HTTP 请求参数等等。因此,对于掌握好字符串拼接技巧不仅有助于提高代码效率,而且能够避免一些潜在的性能问题。 下面我们就来列举出来几种方式,

    2024年02月16日
    浏览(52)
  • 50套Threejs实现的Web3D学习案例,总有一套适合你

    个人主页: 左本Web3D,更多案例预览请点击==》 在线案例 个人简介:专注Web3D使用ThreeJS实现3D效果技巧和学习案例 💕 💕积跬步以至千里,致敬每个爱学习的你。喜欢的话请三连,有问题请私信或者加微信 从18年开始,我由前后端开发开始专注Web3D开发,目前也已经快5年了

    2024年01月23日
    浏览(48)
  • 几种查询局域网内在线弱电设备IP地址的方法,总有一款你会用的到

    方法一:通过电脑cmd命令查询局域网内设备IP 在电脑开始菜单[运行],输入cmd回车,在弹出的命令提示窗口输入ipconfig/all回车,能够查看本机的IP、网关、mac地址信息。 然后在命令提示窗口输入arp -a,进行回车,等待返回结果。 从返回结果可以查询看本地局域网中的所有与本

    2023年04月09日
    浏览(38)
  • 微软商店“提示无法加载页面。请稍后重试“--错误代码0x80131500的解决方法合集(总有一条适合你)

    微软商店错误代码0x80131500解决思路: 方法一: 可能是由于http协议设置的问题导致的。您可以尝试以下方法来解决这个问题: 1. 用\\\"win + R\\\"打开运行,输入 inetcpl.cpl 打开Internet属性(或从IE浏览器设置打开)。 2. 点击高级选项,找到并勾选 TLS 1.2,取消勾选 TLS 1.0。 3. 点击确定,

    2024年02月06日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包