当我周末不忙于那些充实生活的事务,比如送儿子去参加足球训练、观看《角斗士》或是小酌几杯葡萄酒时,我喜欢沉浸在一些实践学习中。目前,我的学习重点一直放在围绕AI和自动化测试领域的知识拓展上。以下是我最近发布的一些文章链接:
- https://beththetester.wordpress.com/2025/02/03/exploring-ai-with-github-browser-tips-and-demos/
- https://beththetester.wordpress.com/2025/02/09/new-postman-ai-features-for-quality-engineers/
- https://beththetester.wordpress.com/2025/02/03/exploring-ai-with-github-browser-tips-and-demos/
- https://beththetester.wordpress.com/2024/11/30/creating-an-ai-assisted-test-framework-in-under-two-hours/
- https://beththetester.wordpress.com/2024/11/17/exploring-ai-tools-and-their-applications/
在过去的几个周末里,我一直在捣鼓 Block(前身为 Square)的开源人工智能代理 Goose,并将它与Angie Jones的 Selenium MCP 服务器集成在一起。
简而言之:看视频
设置过程
Goose 是 Block 公司(原 Square 公司)开发的一个很有趣的工具,它可以动态加载扩展程序,并与各种工具进行交互。在这次实验中,我使用了 selenium-angie 扩展,它提供了一套以AI友好界面封装的 Selenium WebDriver 命令。这意味着 Goose 只需输入自然语言命令就可以执行 Selenium 任务,比如打开浏览器、点击按钮等等,例如:
“导航到 OrangeHRM 演示站点。使用提供的凭据登录,然后注销。”
目前,Goose 团队声明:这个新工具(二月份才发布)的推广重点是在 Linux 和 Mac 系统上。作为 Windows 用户,这意味着要让它正常运行颇具挑战,(对我来说)相当费劲:
-
安装 Goose—— 目前 Windows 系统上还没有直接可用的安装包,所以我得先运行一些命令,通过 WSL(Windows Subsystem for Linux,我以前没用过,所以很不熟悉)来安装:
-
打开管理员权限的 PowerShell 会话
- wsl –install
- curl -fsSL https://github.com/block/goose/releases/download/stable/download_cli.sh | bash
- 配置 Goose—— 因为命令行界面相当友好,因此不是很费事。不过,要是他们集成了用户界面(UI),那就更好了。
- 为 Goose 添加扩展
正如Angie Jones提到的(查看最近的 GitHub 直播的相关资料),有两个主要的地方可以找到适用于 Goose 的扩展(或 MCP 服务器):
- Goose 官方网站:https://block.github.io/goose/v1/extensions/
- 通过 Pulse 开源平台:https://www.pulsemcp.com/servers
这些都是非常棒的资源,你可以探索尝试找到能适用于入Goose 的代理扩展,让它帮你完成特定任务。不过,我最感兴趣的是自动化测试,所以当Angie说正在开发一个 Selenium Webdriver MCP 服务器时,我就知道我得试一试了。
我很快就在Angie的 GitHub 仓库里找到了全新的 Selenium Webdriver MCP 服务器,—— 她的 README 文件非常有用:https://github.com/angiejones/mcp-selenium
对于不熟悉这个过程的人来说,在 Windows 系统的 Goose 上让扩展正常工作是件麻烦的事,但我相信随着产品的不断发展,这会变得越来越容易。
例如,如果你在运行 Goose Session 时遇到扩展无法工作的错误,比如:
Failed to start the MCP server from configuration Stdio(selenium-angie: npx -y @angiejones/mcp-selenium)
* `Call to ” failed for ‘initialize’. Error from mcp-server: Stdio process error: npm error code ERR_INVALID_URL\nnpm error Invalid URL\nnpm error *
可以尝试通过以下命令在会话中安装 nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
source ~/.bashrc
nvm install node
nvm install –lts
然后再运行 “goose session” 应该就可以了。
添加额外的安装程序: 为了让 Goose 能够使用扩展(例如,我需要通过 WSL 安装 Chrome,这样 Selenium Webdriver 才能正常工作)。因为我的机器上已经安装了 Chrome,我一开始没想到还需要通过 WSL 再安装一次。幸运的是,Goose 能给我指明正确的方向,只是它没办法帮我安装。
实验过程
使用 OrangeHRM 人力资源演示网站,让 Goose 执行了一些常见的人力资源系统操作:
- 使用演示凭据登录 OrangeHRM
- 添加一名名为 “Deborah Shmeborah” 的新员工
- 尝试验证休假余额
- 成功注销
观察结果
这种方法最吸引人的地方在于 Goose 处理自动化步骤的方式:
- 它会自动以逻辑顺序组织 Selenium 命令。
- 它使用各种策略(XPath、CSS、名称)来定位元素。
- 当最初的尝试失败时,它能够恢复并尝试其他方法。
- 它在整个会话过程中保持上下文信息。
技术见解
最常用的 Selenium 命令有:
- click_element,用于导航和按钮交互。
- send_keys,用于输入数据。
- find_element 和 get_element_text,用于验证操作。
挑战与收获
虽然 Goose 成功处理了基本操作,但在验证休假余额时,它在处理动态元素方面确实遇到了一些挑战。这凸显了AI驱动的自动化的一个重要方面:需要强大的错误处理机制和替代方法策略。在这个阶段,至少在 Windows 系统上,直接创建一个 Selenium 框架来做同样的事情可能会快得多。
结论
本次探索验证了代理型AI在测试自动化领域的潜力。虽然 Goose 这样的工具并不完美,但它们在使自动化测试更容易实现和维护方面很有前景。与像Angie Jones的 Selenium MCP 这样成熟的测试资源集成,为实际实验提供了坚实的基础。我希望像这样的开源工具能够让那些有好想法,但在技术实现的 “具体方法” 上有所欠缺的人也能有所建树。
最让我兴奋的是将人工智能代理与传统自动化测试方法相结合的潜力。随着这些工具的不断发展,它们可能会显著改变我们进行软件测试的方式。
参考资料
特别致谢Angie Jones在测试自动化领域的持续贡献,其工作显著提升了行业认知度。
视频:https://youtu.be/O-zJJN-TkXc