绝了!这个支持 App 的 AI 自动化工具 auto-wing,你怎能错过!

绝了!这个支持 App 的 AI 自动化工具 auto-wing,你怎能错过!


GitHub: https://github.com/SeldomQA/auto-wing

我们继续探索auto-wing在自动化测试领域的应用,在 0.5.0版本中,进一步支持App的AI自动化测试。

特性

⭐ 集成 playwrightseleniumappium,支持 WebUIAppUIAI操作。

⭐ 支持多模型:openaideepseekqwendoubao

⭐ 支持多种操作:ai_actionai_queryai_assert

⭐ 无痛的集成到现有自动化项目( pytestunittest)中。

App环境准备
  • • 安装node.js

https://nodejs.org/en/

> node --version
v18.20.5
  • • 安装appium
`> npm i --location=global appium  # appium 2.x`
  • • 安装依赖库
> appium driver install uiautomator2
> appium driver install espresso
> ...
  • • 启动appium
> appium server --address '127.0.0.1' -p 4723
 
[Appium] Welcome to Appium v2.2.2
[Appium] Non-default server args:
[Appium] {
[Appium]   address: '127.0.0.1'
[Appium] }
...
  • • 移动设备

准备一台设备(Android/iOS手机)通过USB数据线连接电脑。通过以下工具确认手机与电脑是否连接。

> adb devices 
List of devices attached
UMXDU000000000000       device
  • • 安装autowing
`pip install autowing`
支持App测试

0.5.0版本中,集成了appium,进一步实现了对App自动化的支持。我们知道App测试相比较Web来说,面临更多挑战:原生组件与WebView,以及flutter之间的切换,Android与iOS双平台的支持,好在,我们开始了这个领域的AI操作探索。

App测试示例

import time
import pytest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from dotenv import load_dotenv
from autowing.appium.fixture import create_fixture
 
 
@pytest.fixture(scope="function")
def driver():
    """
        Create and configure Edge WebDriver instance.
        """
    # loading .env file
    load_dotenv()
 
    capabilities = {
        'deviceName': 'ELS_AN00',
        'automationName': 'UiAutomator2',
        'platformName': 'Android',
        'appPackage': 'com.microsoft.bing',
        'appActivity': 'com.microsoft.sapphire.app.main.MainSapphireActivity',
        'noReset': True,
    }
    options = UiAutomator2Options().load_capabilities(capabilities)
    driver = webdriver.Remote(command_executor="http://127.0.0.1:4723", options=options)
 
    yield driver
 
    driver.quit()
 
 
@pytest.fixture
def ai(driver):
    """
        Create an AI-powered Selenium fixture.
        """
    ai_fixture = create_fixture()
    return ai_fixture(driver)
 
 
def test_bing_search(ai, driver):
    """
        test bing App search
        """
    ai.ai_action('点击搜索框,然后输入"auto-wing"关键字,然后回车搜索')
    time.sleep(3)
 
    items = ai.ai_query('string[], 搜索结果列表中包含"auto-wing"相关的标题')
    assert len(items) > 1
 
    ai.ai_assert('检查搜索结果列表第一条标题是否包含"auto-wing"字符串')
 
 
if __name__ == '__main__':
    pytest.main(["test_appium_pytest.py", "-s"])

运行日志

> python test_appium_pytest.py
================================================= test session starts =================================================
platform win32 -- Python 3.12.3, pytest-8.3.4, pluggy-1.5.0
rootdir: D:\github\seldomQA\auto-wing
configfile: pyproject.toml
plugins: anyio-4.8.0, base-url-2.1.0, playwright-0.6.2
collected 1 item
 
test_appium_pytest.py 2025-02-20 20:58:52.730 | INFO     | autowing.core.llm.factory:create:41 - 🤖 AUTOWING_MODEL_PROVIDER=qwen
2025-02-20 20:58:54.573 | INFO     | autowing.appium.fixture:ai_action:76 - 🪽 AI Action: 点击搜索框,然后输入"auto-wing"关键字,然后回车搜索
2025-02-20 20:59:21.582 | INFO     | autowing.appium.actions:tap:27 - 👆 top x=494,y=1541.
2025-02-20 20:59:23.021 | INFO     | autowing.appium.fixture:ai_action:124 - ⌨️ fill text: auto-wing.
2025-02-20 20:59:24.091 | INFO     | autowing.appium.fixture:ai_action:127 - 🔍 keyboard search key.
2025-02-20 20:59:28.070 | INFO     | autowing.appium.fixture:ai_query:146 - 🪽 AI Query: string[], 搜索结果列表中包含"auto-wing"相关的标题
2025-02-20 20:59:48.968 | DEBUG    | autowing.appium.fixture:ai_query:203 - 📄 Query: ['auto-wing将AI应用于自动化项目 - 虫师 - 博客园', 'GitHub - SeldomQA/auto-wing: auto-wing is a tool that uses LLM to ...', 'auto-wing将AI应用于自动化项目 - CSDN博客']
2025-02-20 20:59:48.968 | INFO     | autowing.appium.fixture:ai_assert:244 - 🪽 AI Assert: 检查搜索结果列表第一条标题是否包含"auto-wing"字符串.
遗留问题
  1. 目前只在 Android端测试通过, iOS端待支持。

  2. LLM模型调用慢的问题,后续参考midsence.js做法,提供缓存。

  3. 还需要更多操作支持,比如滑动识别所有元素,滑动查找元素等。

关于AI在自动化测试领域的应用,欢迎参与项目功能讨论和测试。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值