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有一些差异。

  1. 他应该可以方便的应用到现有的自动化项目中。毕竟我们已经编写了大量的自动化项目,可以方便的接入AI是最好的。
  2. 他应该支持更多国内的LLM。国内的LLM并不弱了好吧!这两天不是正在被deepseek-v3刷屏。方便又便宜对吧!?
  3. 他应该支持playwrightselenium;大部分工具都是基于playwright, 然而selenium似乎被抛弃了,我来给selenium上个呼吸机。

很高兴,我趁着大过年在家撸出来了,我这么为测试工程师群体着想,GitHub加个⭐不过分吧!

为什么叫 auto-wing? 那当然是给你的自动化测试插上AI的翅膀 🪽,直接原地起飞,哈哈!

特性

⭐ 支持多种操作:ai_actionai_queryai_assert

⭐ 支持多模型:openaiqwendeepseek

⭐ 支持 playwrightselenium

⭐ 方便的和现有自动化项目(pytestunittest)集成。

安装

pip install autowing 

设置环境变量

方法一

申请LLM需要的key,在项目的根目录下创建.env文件。推荐deepseek,一是便宜又强大(没错,我就是在蹭蹭DeepSeek)。

#.env AUTOWING_MODEL_PROVIDER=deepseek DEEPSEEK_API_KEY=sk-abdefghijklmnopqrstwvwxyz0123456789 

方法二

如果不想使用python-dotenv配置环境变量,可以直接配置环境变量。

export AUTOWING_MODEL_PROVIDER=deepseek export DEEPSEEK_API_KEY=sk-abdefghijklmnopqrstwvwxyz0123456789 

使用示例

注: pytestunittestplaywrightselenium可以两两任意组合。

  • 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

  1. App是否支持?有计划支持。
  2. auto-wing刚发布,肯定还有不少坑,加了我微信的已经推动项目更新了,而你只能发个评论默默等回复。
  3. auto-wing稳定之后,seldomlounger项目也会同步集成。
  4. 最后,祝福大家:新年快乐~!。
发表评论

评论已关闭。

相关文章