auto-wing将AI应用于自动化项目
GitHub: https://github.com/SeldomQA/auto-wing
背景:我们之前介绍过 midsence.js AI自动化测试辅助工具,midsence.js的思路我个人是比较认可的。然而,因为它是基于TS语言实现的,更多的软件测试工程师使用Python语言!我来用Python实现一个满足更多测试工程师的需求。
auto-wing的定位
既然借鉴了midsence.js的思路,为什么不叫midsencepy?因为我希望创建的AI自动化辅助工具和midsence.js有一些差异。
- 他应该可以方便的应用到现有的自动化项目中。毕竟我们已经编写了大量的自动化项目,可以方便的接入AI是最好的。
- 他应该支持更多国内的LLM。国内的LLM并不弱了好吧!这两天不是正在被
deepseek-v3刷屏。方便又便宜对吧!? - 他应该支持
playwright和selenium;大部分工具都是基于playwright, 然而selenium似乎被抛弃了,我来给selenium上个呼吸机。
很高兴,我趁着大过年在家撸出来了,我这么为测试工程师群体着想,GitHub加个不过分吧!
为什么叫 auto-wing? 那当然是给你的自动化测试插上AI的翅膀 ,直接原地起飞,哈哈!
特性
支持多种操作:ai_action、ai_query、ai_assert。
支持多模型:openai、qwen 和 deepseek。
支持 playwright、selenium。
方便的和现有自动化项目(pytest、unittest)集成。
安装
pip install autowing
设置环境变量
方法一
申请LLM需要的key,在项目的根目录下创建.env文件。推荐deepseek,一是便宜又强大(没错,我就是在蹭蹭DeepSeek)。
- DeepSeek: https://platform.deepseek.com/
#.env
AUTOWING_MODEL_PROVIDER=deepseek
DEEPSEEK_API_KEY=sk-abdefghijklmnopqrstwvwxyz0123456789
方法二
如果不想使用python-dotenv配置环境变量,可以直接配置环境变量。
export AUTOWING_MODEL_PROVIDER=deepseek
export DEEPSEEK_API_KEY=sk-abdefghijklmnopqrstwvwxyz0123456789
使用示例
注: pytest 、unittest 和 playwright、selenium可以两两任意组合。
- pytest + playwright 示例
"""
pytest example for Playwright with AI automation.
"""
import pytest
from playwright.sync_api import Page, sync_playwright
from autowing.playwright.fixture import create_fixture
from dotenv import load_dotenv
@pytest.fixture(scope="session")
def page():
"""
playwright fixture
"""
# loading .env file
load_dotenv()
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
yield page
context.close()
browser.close()
@pytest.fixture
def ai(page):
"""
ai fixture
"""
ai_fixture = create_fixture()
return ai_fixture(page)
def test_bing_search(page: Page, ai):
"""
Test Bing search functionality using AI-driven automation.
This test demonstrates:
1. Navigating to Bing
2. Performing a search
3. Verifying search results
"""
page.goto("https://cn.bing.com")
ai.ai_action('搜索输入框输入"playwright"关键字,并回车')
page.wait_for_timeout(3000)
items = ai.ai_query('string[], 搜索结果列表中包含"playwright"相关的标题')
print("query", items)
assert len(items) > 1
print("assert")
assert ai.ai_assert('检查搜索结果列表第一条标题是否包含"playwright"字符串')
- unittest + selenium 示例
"""
Unittest example for Selenium with AI automation.
"""
import unittest
import time
from selenium import webdriver
from autowing.selenium.fixture import create_fixture
from dotenv import load_dotenv
class TestBingSearch(unittest.TestCase):
@classmethod
def setUpClass(cls):
# load .env file
load_dotenv()
# Initialize Edge WebDriver
cls.driver = webdriver.Edge()
# Create AI fixture
ai_fixture = create_fixture()
cls.ai = ai_fixture(cls.driver)
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_01_bing_search(self):
"""
Test Bing search functionality using AI-driven automation.
This test demonstrates:
1. Navigating to Bing
2. Performing a search
3. Verifying search results
"""
self.driver.get("https://cn.bing.com")
self.ai.ai_action('搜索输入框输入"playwright"关键字,并回车')
time.sleep(3)
items = self.ai.ai_query('string[], 搜索结果列表中包含"playwright"相关的标题')
print("query", items)
self.assertGreater(len(items), 1)
self.assertTrue(
self.ai.ai_assert('检查搜索结果列表第一条标题是否包含"playwright"字符串')
)
if __name__ == '__main__':
unittest.main()
Q/A
- App是否支持?有计划支持。
auto-wing刚发布,肯定还有不少坑,加了我微信的已经推动项目更新了,而你只能发个评论默默等回复。auto-wing稳定之后,seldom和lounger项目也会同步集成。- 最后,祝福大家:新年快乐~!。
auto-wing将AI应用于自动化项目的更多相关文章
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 3. ...
- Gulp.js - 简单、直观的自动化项目构建工具
Gulp.js 是一个简单.直观的构建系统.崇尚代码优于配置,使复杂的任务更好管理.通过结合 NodeJS 的数据流的能力,你能够快速构建.通过简单的 API 接口,只需几步就能搭建起自己的自动化项目 ...
- Selenium Web 自动化 - 项目持续集成(进阶)
Selenium Web 自动化 - 项目持续集成(进阶) 2017-03-09 目录 1 背景及目标2 环境配置 2.1 SVN的安装及使用 2.2 新建Jenkins任务3 过程分析 1 背景 ...
- Selenium Web 自动化 - 项目持续集成
Selenium Web 自动化 - 项目持续集成 2017-02-13 目录 1环境准备 1.1 安装git 1.2 安装jenkins 1.3 安装jenkins插件 1.4 jekins ...
- 重磅推出:AutoProject Studio 自动化项目生成器
AutoProject Studio 自动化项目生成器 核心架构图 AutoProject Studio 自动化项目生成器是一款基于C#.Net Framework 4.0为平台自主研发.专为软件设计 ...
- AutoProject Studio 自动化项目生成器 下载地址
一.ZCN.NET 自动化项目生成器 下载专区 [如果下载链接不可用,请直接联系作者,QQ:3080400049] 1.1.ZCN.NET 自动化项目生成器 安装程序 V2016Beta1 ...
- Selenium Web 自动化 - 项目实战环境准备
Selenium Web 自动化 - 项目实战环境准备 2016-08-29 目录 1 部署TestNG 1.1 安装TestNG 1.2 添加TestNG类库2 部署Maven 2.1 mav ...
- Selenium Web 自动化 - 项目实战(一)
Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...
- Selenium Web 自动化 - 项目实战(二)
Selenium Web 自动化 - 项目实战(二) 2016-08-08 什么是数据驱动?简答的理解就是测试数据决定了测试结果,这就是所谓数据驱动.数据驱动包含了数据,他就是测试数据,在自动化领域里 ...
- [转]如何使用MFC和类型库创建自动化项目
本文转自:http://www.cnblogs.com/zhoug2020/archive/2012/04/01/2429064.html 摘要 本文详细介绍了如何自动化像Microsoft Offi ...
随机推荐
- git rebase -i的时候用的不是 vi 编辑器是 nano编辑器不会用
今天给同事 rebase 代码 发现 git fetch && git rebase -i origin/develop 的时候 出现了 那个 nano 编辑器的界面 不会用,和vim ...
- (Python基础教程之十四)Python将tuple开箱为变量或参数
Python示例将N元素元组或序列开箱缩为N个变量的集合.将元组开箱缩为变量的 Python示例. 1. Python开箱元组示例 可以使用简单的赋值操作将任何序列(或可迭代)开箱缩为变量.唯一的要求 ...
- uni-app 简单上手
1.前言 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/ ...
- 痞子衡嵌入式:简析i.MXRT1170 XECC开启及Data Swap功能对于外部RAM的访问性能影响
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1170 XECC开启及Data Swap功能对于外部RAM的访问性能影响. 文接上篇 <i.MXRT1170 XEC ...
- Winform多线程持续读取PLC数据
1.Winform窗体界面 2.后台代码 点击查看代码 using Modbus.Device; using System; using System.Collections.Generic; usi ...
- OS之《内存管理》
程序装入方式 绝对装入:程序逻辑地址和物理地址是完全对应的.不现实 可重定位装入:装入的时候重新 计算内存地址.程序中的实际地址加上程序载入的起始地址:但是解决不了进程挂起 后重新唤醒的问题.唤醒的后 ...
- [转载] 6 个技巧,提升 C++11 的 vector 性能
转载:https://www.sohu.com/a/120595688_465979 Vector 就像是 C++ STL 容器的瑞士军刀.Bjarne Stoutsoup 有一句话 – " ...
- 当年的毕设-cpf (一个简易的协议 fuzzer)
整理文件时发现了这个,看是否有人需要... https://github.com/hac425xxx/cpf/ cpf 一个简单的协议Fuzz工具. 毕设答辩胶片&演示视频 https://g ...
- 鸿蒙UI开发快速入门 —— part12: 渲染控制
1.前言 在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染语句. 2.条件渲染 ...
- 中电金信发布两款大模型产品,打通AI+应用“最后一公里”
近年来,以大模型为代表的人工智能技术已成为引领新一代产业变革的核心动力.2024年政府工作报告首次提出"人工智能+",要求"大力推进现代化产业体系建设,加快发展新质生产力 ...