zhidao 发表于 2025-2-5 12:41:22

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/
#.envAUTOWING_MODEL_PROVIDER=deepseekDEEPSEEK_API_KEY=sk-abdefghijklmnopqrstwvwxyz0123456789方法二
如果不想使用python-dotenv配置环境变量,可以直接配置环境变量。
export AUTOWING_MODEL_PROVIDER=deepseekexport DEEPSEEK_API_KEY=sk-abdefghijklmnopqrstwvwxyz0123456789使用示例

注: pytest 、unittest 和 playwright、selenium可以两两任意组合。

[*]pytest + playwright 示例
"""pytest example for Playwright with AI automation."""import pytestfrom playwright.sync_api import Page, sync_playwrightfrom autowing.playwright.fixture import create_fixturefrom 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.fixturedef 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 unittestimport timefrom selenium import webdriverfrom autowing.selenium.fixture import create_fixturefrom dotenv import load_dotenvclass 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项目也会同步集成。
[*]最后,祝福大家:新年快乐~!。
页: [1]
查看完整版本: auto-wing将AI应用于自动化项目