Aqua 专为自动化测试打造的IDE
JetBrains是一家全球知名的软件开发公司,他们公司推出的IDE几乎是编程语言的首选,IntelliJ IDEA 之于Java,PyCharm之于Python,以及GoLand之于go等。
5月24号JetBrains官方宣布Aqua正式公开发布,这是一款专门针对自动化测试打造的IDE。
对于一名自动化测试的工程师,对于这些语言和工具再并不陌生。
Aqua下载地址:https://www.jetbrains.com/zh-cn/aqua/
创建项目
首先,启动Aqua后,可以通过菜单栏:File
-> New
-> project...
新建项目。
在创建项目时 语言
、框架
和 库
其实是一个排列组合的关系。我这里选择最为熟悉的 Python
、pytest
和 selenium
。
- Name: 项目名称。
- Environment type: 用于指定环境管理工具。
- Base interpreter: 指定Python版本。
- Poetry executable: 推荐使用
Poetry
,Python需要先安装Poetry,这里才能选择。
其次,手动安装依赖,可能是我在创建项目的时候报了一个错误,导致依赖库没有安装,不过,没关系,我们可以手动安装。
打开 Terminal 使用 pip 命令安装个pytest
和 selenium
即可。
功能体验
样例代码
项目创建完成,Aqua默认创建了 test.py
文件,并生成了示例代码。
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
class TestWebsite:
# 1. Check browser configuration in browser_setup_and_teardown
# 2. Run 'Selenium Tests' configuration
# 3. Test report will be created in reports/ directory
@pytest.fixture(autouse=True)
def browser_setup_and_teardown(self):
self.use_selenoid = False # set to True to run tests with Selenoid
if self.use_selenoid:
self.browser = webdriver.Remote(
command_executor='http://localhost:4444/wd/hub',
desired_capabilities={
"browserName": "chrome",
"browserSize": "1920x1080"
}
)
else:
self.browser = webdriver.Chrome()
self.browser.maximize_window()
self.browser.implicitly_wait(10)
self.browser.get("https://www.jetbrains.com/")
yield
self.browser.close()
self.browser.quit()
def test_tools_menu(self):
"""this test checks presence of Developer Tools menu item"""
tools_menu = self.browser.find_element(By.XPATH,
"//div[@data-test='main-menu-item' and @data-test-marker = 'Developer Tools']")
tools_menu.click()
menu_popup = self.browser.find_element(By.CSS_SELECTOR, "div[data-test='main-submenu']")
assert menu_popup is not None
...
代码比较简单,通过 @pytest.fixture
创建浏览器的启动和关闭。test_xxx
实现测试用例。熟悉Selenium的工程师来说,这个可忽略不计。
定位元素
在代码中,每个定位前面多了一个小icon,点击可以打开内置的浏览器,可以快速地帮助我们生成元素定位。
这个功能就实用很多了,在编写Web UI 自动化测试的时候,查找元素的定位往往是比较耗时的工作,这个功能可以有效地节省查找元素的定位的时间。
内置HTTP client
我们可以创建一个 test_api.http
的文件,直接编写 HTTP 请求。
这个功能仅仅用于接口的调试,JetBrains 其他专业版的IDE都内置的有这个功能。这个都算不上Aqua的特色功能。
其他
- Docker
借助 Aqua,可以访问 Docker 容器,这样一来,您可以运行并调试容器、下载和构建镜像、运行多容器应用程序。
- 数据库
你可以无缝地处理多个数据库、开发 SQL 脚本,以及在 IDE 中执行低级数据断言。 Aqua 可以连接到实时数据库、运行查询、导出数据,并让您在可视界面中管理架构。 这意味着您可以直接从 IDE 访问 Oracle、SQL Server、PostgreSQL、MySQL 等数据库。
- 测试管理系统
我们添加了注解来支持 Allure Framework 等测试报告工具或 Serenity BDD 等内置测试框架机制。 IDE 允许你点击问题 ID 在 Web 浏览器中打开问题或测试管理系统用例。
- AI Assistant
借助 AI Assistant,您可以直接从 Web 检查器中打开的网页创建 UI 测试并生成页面模型。AI Assistant 会为所选框架和编程语言生成合适的代码,包括关键网页元素。然后,您可以复制代码并将其插入现有文件或添加到新文件中。
总结
还有其他组合每体验,比如 typescript + playwirht 的编写自动化体验。
整体感觉,JetBrains 拿着自家已有的东西,随便整合一下 命名个新产品出来营销。如果你已经在使用 PyCharm 或者 IntelliJ IDEA 在写自动化测试,其实没太大必要专门来用 Aqua,如果使用的是其他编辑器或这个IDE,不妨尝试一下Aqua。
我自己打算使用一段时间,继续挖掘一下Aqua的功能。
Aqua 专为自动化测试打造的IDE的更多相关文章
- 10款优秀Vim插件帮你打造完美IDE
导读 如果你稍微写过一点代码,就能知道“集成开发环境”(IDE)是多么的便利.不管是Java.C还是Python,当IDE会帮你检查语法.后台编译,或者自动导入你需要的库时,写代码就变得容易许多.另外 ...
- Ubuntu16.04 IDE: 用Vim逐步打造一个IDE
目前打造完成的IDE主要有: terminator+Bundle+NERDtree+YCF(youcompleteme)+UltiSnips+新创建文件自动补充注释和作者,版权信息等 1,当任务比较多 ...
- 开源Web自动化测试工具Selenium IDE
Selenium IDE(也有简写SIDE的)是一款开源的Web自动化测试工具,它实现了测试用例的录制与回放. Selenium IDE目前版本为 3.6 系列,支持跨浏览器运行,所以IDE的UI从原 ...
- 自动化测试模型 Selenium IDE Selenium Gird2
1.线性测试 每个测试脚本相对独立,且不产生其他依赖与调用,其实就是单纯的来模拟用户完整的 操作场景.前一篇所写的测试脚本就属于线性测试. 优点:每个脚本完整且独立 缺点:测试用例的开发与维护成本高 ...
- 自动化测试工具-Selenium IDE 教程一
引言:这里介绍的是谷歌浏览种的插件,安装教程这里不再描述,网上有很多, 使用教程不是特别多,所以特地花时间整理此篇内容: 一:打开插件,欢迎界面 启动IDE后,将显示一个欢迎对话框. 如果这是您第一次 ...
- 一键打造vim ide 支持python golang shell等高级特性
1.vim-for-devops github: https://github.com/yxxhero/vim_for_devops 利用vim插件打造支持python.shell.golang的id ...
- macvim打造python IDE
昨天安装了macvim,今天在上面配置了一下python的ide: 大家也可参考http://blog.dispatched.ch/2009/05/24/vim-as-python-ide/ 1.文法 ...
- firefox插件-自动化测试工具-selenium IDE
教程:http://www.yiibai.com/selenium/selenium_download_ide.html 下载地址:https://addons.mozilla.org/en-US/f ...
- 打造vim IDE
pathogen.vim:vim插件目录自动识别.加载(注意:能用pathogen.vim安装插件,就不要用Vundle.因为Vundle下载插件速度非常慢.) https://github.com/ ...
- vim打造开发IDE
个人的插件和配置 set nocompatible " 去除VI一致性,必须要添加 filetype off " 必须要添加 " advanced keys " ...
随机推荐
- js es6 map weakmap
前言 这里介绍一些map和weakmap的一些属性和他们不同之处. 正文 map JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这 ...
- js es6 delete
前言 首先delete 不同于nodejs delete,看下有什么不同. 正文 var test=5; delete test; console.log(test); 结果是test没有受到任何影响 ...
- leetcode - 子数组最大平均值
给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 解释:最大平均数 (12-5-6+5 ...
- resin报错:java.lang.IllegalStateException: block Block
java.lang.IllegalStateException: block Block 启动resin时报错 主要的提示信息就是下面这个 java.lang.IllegalStateExceptio ...
- 19_非单文件名组件中VueComponent构造函数&重要的内置关系
总结: 关于VueComponent: 1.school组件本质上是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的. 2.我们只需要写&l ...
- 力扣162(java&python)-寻找峰值(中等)
题目: 峰值元素是指其值严格大于左右相邻值的元素. 给你一个整数数组 nums,找到峰值元素并返回其索引.数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可. 你可以假设 nums[ ...
- 力扣661(java)-图片平滑器(简单)
题目: 图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度. 每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的 ...
- What's new in dubbo-go v1.5.6
简介: dubbogo 社区近期发布了 dubbogo v1.5.6.该版本和 dubbo 2.7.8 对齐,提供了命令行工具,并提供了多种加载配置的方式. 作者 | 铁城 dubbo-go 社区 ...
- [FAQ] crontab 执行curl xxx 好像没有执行 ?
如果你的crontab任务中的curl命令没有执行,可能有几个原因需要检查: 1. 检查命令路径:确保你在crontab任务中指定了正确的curl命令路径.你可以使用 which curl 命令来 ...
- [Pholcus] Go项目 Pholcus 源码逻辑分析 species.go
「代码结构」 结构体:蜘蛛种类列表(即:蜘蛛规则列表) 变量:全局蜘蛛种类实例 方法:向蜘蛛种类清单添加新种类 方法:获取全部蜘蛛种类 方法:通过名字获取蜘蛛 「总体功能」 添加新种类:通过 Spid ...