测试自动化概念整理
协议
JSON Wire Protocol Specification
JSON Wire 协议
现已过时的开源协议的端点和有效负载,它是W3C webdriver的先驱。
devtool协议
Chrome DevTools 协议允许使用工具来检测、检查、调试和分析 Chromium、Chrome 和其他基于 Blink 的浏览器。 许多现有项目目前使用该协议。 Chrome DevTools 使用此协议,团队维护其 API。
webdriver协议
WebDriver 是一个远程控制接口,可以实现用户代理的自省和控制。它提供了一种平台和语言中立的有线协议,作为进程外程序远程指示 Web 浏览器行为的一种方式。
提供了一组接口来发现和操作 Web 文档中的 DOM 元素并控制用户代理的行为。它的主要目的是允许 Web 作者编写测试,从单独的控制过程中自动化用户代理,但也可以以允许浏览器内脚本控制(可能是单独的)浏览器的方式使用。
实现整理
puppeteer
当您安装 Puppeteer 时,它会下载最新版本的 Chromium(~170MB Mac、~282MB Linux、~280MB Win),该版本保证可以与 API 一起使用。要跳过下载、下载到其他路径或下载其他浏览器,请参阅环境变量。
puppeteer-core
从 1.7.0 版本开始,发布了这个puppeteer-core包,一个默认不下载任何浏览器的 Puppeteer 版本。
selenium簇
Selenium 是一个涵盖一系列工具和库的项目,这些工具和库支持和支持 Web 浏览器的自动化。
它提供了模拟用户与浏览器交互的扩展、用于扩展浏览器分配的分发服务器,以及用于实现 W3C WebDriver 规范的基础架构 ,允许您为所有主要 Web 浏览器编写可互换的代码。
Selenium WebDriver
如果您想创建健壮的、基于浏览器的回归自动化套件和测试、在许多环境中扩展和分发脚本,那么您需要使用 Selenium WebDriver,它是一组特定于语言的绑定来驱动浏览器——这就是它的本意 驱动。
有好几个版本:
- 翻译成js,侵入
- Selenium 2 是使用 WebDriver 代码实现的 Selenium 1 的重写。 不进行代码侵入操作
- Selenium 3 是没有 Selenium RC 代码的 WebDriver 的实现。此后它已被 Selenium 4 取代,后者实现了 W3C WebDriver 规范。
- 实现W3C WebDriver 规范
selenium-standalone
A Node.js based package and CLI library for launching Selenium with WebDrivers support (Chrome, Firefox, IE, Edge)
webdriveio 框架
WebdriverIO 是一个渐进式自动化框架,旨在自动化现代 Web 和移动应用程序。它简化了与您的应用程序的交互,并提供了一组插件来帮助您创建可扩展、健壮和稳定的测试套件。
它被设计为:
- 可扩展- 添加辅助函数,或更复杂的集合和现有命令的组合非常简单且非常有用
- 兼容- WebdriverIO 可以在WebDriver 协议上运行,用于真正的跨浏览器测试,也可以在Chrome DevTools 协议上运行,用于使用Puppeteer实现基于 Chromium 的自动化。
- 功能丰富- 种类繁多的内置和社区插件使您可以轻松集成和扩展您的设置以满足您的要求。
可供多个服务进行集成,如:
- Appium Service
- Selenium Standalone Service
- Devtools Service
- Browserstack Service
- ChromeDriver Service
- ....
Appium
Appium 是一个开源测试自动化框架,用于原生、 混合和移动 Web 应用程序。 它使用 WebDriver 协议驱动 iOS、Android 和 Windows 应用程序。
Appium 旨在自动化任何语言和任何测试框架的任何移动应用程序,并从测试代码中完全访问后端 API 和 DB。使用上述所有编程语言,甚至更多(使用 Selenium WebDriver API 和特定于语言的客户端库),使用您最喜欢的开发工具编写测试。
简单来讲:就是一个中转服务器,接收命令,并转换成目标的对应指令
javascript相关的测试框架
mocha
用于 Node.js 和浏览器的简单、灵活、有趣的 JavaScript 测试框架
Jest
比较集成的JavaScript 测试框架
如果你想学习自动化测试,那么下面这套视频应该会帮到你很多
如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....
最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了
以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。