| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 有什么好的开源自动化测试框架可以推荐? -> 正文阅读 |
|
[系统运维]有什么好的开源自动化测试框架可以推荐? |
目录 你好,我是测试开发工程师——臻叔。 我以业内人士的角度来回答下: 框架在精而不在多,毕竟还是得以我们测试工程师平常用的最多的为基准。精通以下7个框架,应该能满足你工作中的基本需求了。 一、Junit(白盒测试、API自动化、UI自动化)【官网】 【简介】 Junit是一个面向Java编程语言的单元测试框架。 单元测试:针对最小的功能单元编写测试代码。Java程序最小的功能单元是方法,对Java编程语言进行单元测试,说白了就是对Java的方法进行测试。 用 Junit 编写单元测试的好处有:
任何Java开发者都应当学习并使用Junit编写单元测试;同时,Java?技术栈的测试或者测试开发工程师,也可以学习 Junit 来作为自动化测试底层框架。 Junit目前最新版本是5。 【使用场景】
二、Selenium(Web自动化、爬虫)【官网】 【简介】 Selenium 是使用最为广泛的?Web 自动化测试(UI自动化)框架之一。 Selenium 可以完全模拟用户对主流浏览器进行操作,主要包括鼠标事件和键盘事件。
Selenium 支持八种元素定位方式:
兼容性方面,Selenium 支持 Chrome、FireFox、Safari 等主流浏览器; 并且 Selenium 对 Java 和 Python 都提供了便捷的API调用。 【使用场景】
三、TestNG(白盒测试、API自动化、UI自动化)【官网】 https://testng.org/doc/index.html 【简介】 TestNG 是 Java中一个很流行实用的单元测试框架。 它的灵感来源于 Junit ( java 的单元测试框架) 和 Nunit ( .net 的单元测试框架)。 但是它又在此基础上引入了新的东西,使得它更加强大。 关于注解特性方面,可以参考下表:
TestNG 和 JUnit 还有两个比较明显的区别:
经过一番对比之后,TestNG 在参数化测试、依赖测试以及套件测试(组)方面功能比 Junit 更加强大,并且包含了几乎 Junit 的所有功能,所以建议优先选择 TestNG。 【使用场景】
四、Cucumber(API自动化、UI自动化)【官网】 【简介】 自动化测试用例越写越多,也越来越难维护。 开发看不懂测试写的代码,测试也看不懂测试写的代码,那是因为代码不讲人话。 如何才能做到面向“注释”编程?BDD给出了答案。 BDD:Behavior-Driven Development ,也就是行为驱动开发。 BDD使用的叫做Gherkin的语言,它的理念是使用自然语言来描述功能,而且强调的是使用例子来说明需求功能。是不是跟敏捷开发中的用户故事(User Story)很像?嗯,因为它们都是一个妈生的。 使用这种方法可以让非技术人员、客户可以参与到需求的确认与验收当中。 以下是用 Cucumber 写出的 BDD 风格的测试用例 Demo :
就像讲故事一样,来梳理代码逻辑。 【使用场景】
五、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。 【使用场景】
六、Appium(移动端的UI自动化测试)【官网】 【简介】 在移动端的 UI自动化 测试领域,带头大哥当属 Appium。 Appium 是基于 Nodejs 的一款 UI自动化 测试框架。 支持多平台(Android、iOS等) 支持多语言(python、java、ruby、js、c#等) Appium是跨平台的,可以用在OSX,Windows以及Linux桌面系统上运行。 之前曾看过一则新闻,Appium 已经进军 AI 测试(基于AI查找控件)的领域了,不愧是龙头大哥。 【使用场景】
一般会结合单元测试框架去开发UI自动化测试框架。 Java:TestNG + Appium + Jenkins Python:Pytest + Appium + Allure + Jenkins 七、ATX(移动端的UI自动化测试)【官网】 https://github.com/NetEaseGame/ATX 【简介】 ATX(AutomatorX) 是一款(网易)开源的自动化测试工具,支持测试iOS平台和Android平台的原生应用、游戏、Web应用。 使用Python来编写测试用例,混合使用图像识别,控件定位技术来完成游戏的自动化。 附加专用的IDE来完成脚本的快速编写。 ATX的生态圈: [底层驱动]
[元素定位] [设备管理] atxserver2?https://github.com/openatx/atxserver2 [测试框架] ATX-Test?pengchenglin/ATX-Test 【使用场景】
一般会结合单元测试框架去开发UI自动化测试框架。 Python:Pytest + uiautomator2/wda + Allure + Jenkins 以上7个测试框架,都是臻叔实际工作中最常用到的。如果你是刚入门测试的同学,可能看到这里会一头雾水。 没关系,你可以先大概了解下这些最常用的测试框架,之后臻叔也会陆续把我之前学习这些工具的笔记整理好,发出来供大家参考。 另外,当你学习一个新的工具时,建议你直接看官方文档(以上工具的官网链接,我都帮大家列出来了)。虽然官网常常是英文的,但是它也是最权威、最官方的。百度直接查的话,有的文章常常有错误,或者说文中所说内容已经过时了,小白很容易被误导。而且程序员难免要接触英文,当你习惯看官方文档后,你会发现自己的英文水平也在不知不觉间提高了。 最后再小结一下:1)Java的白盒测试、API自动化、UI自动化:
2)python的白盒测试、API自动化、UI自动化: pytest(功能更多,更简洁高效,优于unittest )。 3)API自动化、UI自动化: Cucumber(面向“注释”编程)。 4)移动端的UI自动化测试:
5)UI自动化、爬虫: Selenium(兼容性好,Web自动化必选)。 以上,希望能帮到你。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 9:28:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |