TestCraft chrome插件使用教程

1. 插件简介

        TestCraft 是一款基于人工智能(AI)技术的自动化测试工具,专为简化软件测试流程而设计。它通过创新的模型驱动架构(Model-Driven Architecture)和强大的 AI 能力,帮助测试人员快速生成测试想法,编写跨各种框架和编程语言的自动化脚本,并检查应用程序的可访问性问题,显著提升测试效率和质量。

2. 安装步骤

2.1 从 Chrome 应用商店安装

  1. 打开 Chrome 浏览器,访问 Chrome Web Store

  2. 搜索 “TestCraft”。

  3. 点击 “添加到 Chrome” → “添加扩展”。

  4. 单击浏览器工具栏中的扩展程序图标,并固定扩展程序,以便 TestCraft 图标始终可见

3. 核心功能

3.1 AI 驱动的测试想法生成

  • 利用大型语言模型 LLM 集思广益,根据网页元素自动生成全面的测试想法,覆盖功能性测试、用户交互场景等,确保最佳测试覆盖率。

  • 测试人员无需手动编写测试用例,AI 会根据页面结构智能推荐测试方案。

3.2 自动化测试脚本生成

  • 支持为流行的自动化框架(如 Cypress、Playwright、Selenium)生成可立即运行的测试脚本。

  • 支持多种编程语言(JavaScript、TypeScript、Python、C#、Java),满足不同团队的技术需求。

  • 测试脚本可直接集成到开发环境中,减少手动编写代码的工作量。

3.3 可访问性检查

  • 自动识别 Web 应用程序中的可访问性问题(如缺少表单标签、颜色对比度不足等),并提供改进建议。

  • 确保应用程序符合 WCAG 等可访问性标准,提升用户体验。

3.4 测试想法到自动化测试的无缝转换

  • 用户可以在生成测试想法后,直接将其转换为自动化测试脚本,无需额外操作。

  • 支持在生成脚本前编辑测试想法,进一步优化测试方案。

4. 详细使用教程

4.1产生测试想法

  • 依次点击插件-Pick Element

  • 选择元素后,点击“生成测试想法”。

  • 查看建议的测试想法,分为积极测试、消极测试和创造性测试场景:

  • 积极测试:系统在正常条件下按预期运行。

  • 消极测试:错误情况或无效输入时系统如何处理。

  • 创造性测试场景:探索不太常见的条件或组合输入以发现独特的问题,即发散测试。

  • 或者,使用每个想法旁边的铅笔图标编辑建议的测试想法。

4.2 自动化测试想法

  • 按照上述方法产生测试想法。

  • 使用复选框选择您认为相关的测试想法(或者,您可以先编辑它们)。

  • 单击“Automate”可根据所选的测试思路为特定 UI 元素生成自动化脚本。

4.3 复制测试想法

  • 按照上述方法产生测试想法。

  • 使用复选框选择您认为相关的测试想法(或者,您可以先编辑它们)。

  • 单击"copy to clipboard"以复制选定的想法以供记录或进一步处理,比如粘贴到xmind。

4.4 编写自动化脚本

  • 选择元素后,点击“自动化”生成代码。

  • 单击“复制到剪贴板”将生成的代码直接复制到您的 IDE 中。

  • 代码采用了页面对象模型(Page Object Model)设计模式,将页面元素和操作封装在LoginPage类中,提高代码可维护性;测试用例放另一个py文件。

# page_objects.py
# 封装登录页面中手机号输入框相关操作的页面对象类
class LoginPage:
    def __init__(self, driver):
        self.driver = driver

    @propertydef phone_input(self):
        # 通过CSS定位方式定位手机号输入框:类型为tel的input元素
        return self.driver.find_element(By.CSS_SELECTOR, "input[type='tel']")

    def enter_phone_number(self, phone_number):
        # 在手机号输入框中输入文本(先清空再输入)
        self.phone_input.clear()
        self.phone_input.send_keys(phone_number)

    def get_phone_input_value(self):
        # 获取手机号输入框当前的值
        return self.phone_input.get_attribute('value')


# test_login.pyimport unittest
from selenium import webdriver
from page_objects import LoginPage

class TestLoginPage(unittest.TestCase):
    def setUp(self):
        # 测试前的设置:启动Chrome浏览器并访问登录页面
        self.driver = webdriver.Chrome()
        self.driver.get("http://10.30.5.85/sso/login/1?QrType=wechat")
        self.login_page = LoginPage(self.driver)

    def tearDown(self):
        # 测试后的清理:关闭浏览器
        self.driver.quit()

    def test_enter_valid_phone_number(self):
        # 验证输入的手机号是否正确显示在输入框中
        valid_phone_number = "12345678901"
        self.login_page.enter_phone_number(valid_phone_number)
        self.assertEqual(self.login_page.get_phone_input_value(), valid_phone_number)

    def test_enter_invalid_phone_number(self):
        # 验证即使输入无效手机号也能正确显示
        invalid_phone_number = "12345"
        self.login_page.enter_phone_number(invalid_phone_number)
        self.assertEqual(self.login_page.get_phone_input_value(), invalid_phone_number)

    def test_phone_number_length(self):
        # 验证输入框是否限制手机号长度为11位(假设业务规则)
        long_phone_number = "123456789012"
        self.login_page.enter_phone_number(long_phone_number)
        self.assertEqual(len(self.login_page.get_phone_input_value()), 11)

    def test_phone_number_cleared(self):
        # 验证清空操作是否有效
        phone_number = "98765432101"
        self.login_page.enter_phone_number(phone_number)
        self.login_page.phone_input.clear()
        self.assertEqual(self.login_page.get_phone_input_value(), "")

    def test_phone_number_autocomplete_off(self):
        self.assertEqual(self.login_page.phone_input.get_attribute('autocomplete'), 'off')

    def test_phone_number_placeholder(self):
        # 验证手机号输入框的placeholder文本是否正确
        expected_placeholder = "请输入手机号码"
        self.assertEqual(self.login_page.phone_input.get_attribute('placeholder'), expected_placeholder)

if __name__ == "__main__":
    unittest.main()

4.5 可访问性检查

  • 选择元素后,点击“Check Accessibility”。

  • 查看详细报告,指出潜在问题和测试建议。

问题

符合性A级

- 问题:输入字段缺少标签
- 标准:1.1.1 非文本内容
- 解决方案:使用与输入的“id”匹配的“for”属性添加与输入字段关联的“<label>”元素。
符合等级AA

- 问题:占位符文本是提供说明的唯一手段
- 标准:3.3.2 标签或说明
- 解决方案:为输入字段提供可见的标签,而不是仅仅依赖占位符文本。
一致性级别 AAA

- 问题:没有指示输入字段的必填状态
- 标准:3.3.3 错误建议
- 解决方案:用可见的标记(例如星号)指示该字段是必填的,如果输入不符合预期格式,则提供错误建议。
建议的测试

- 测试:检查输入字段的标签是否正确
- 标准:4.1.2 名称、角色、值
- 测试详情:使用屏幕阅读器验证输入字段是否具有可访问的名称,以及在聚焦时是否正确读取标签。

5.API配置

在“设置”选项卡中,您可以找到扩展程序的各种配置设置。要打开它,请点击左上角的齿轮图标。

5.1自动化设置

在本节中,您可以选择您喜欢的语言和测试框架。

5.2 OpenAI API 密钥

输入 Open AI API 密钥可将此密钥设置为用于所有 OpenAI 请求。此操作还会启用下拉菜单,以便选择更强大的模型。

  • 在第一个文本输入(带有占位符“您的 OpenAI API 密钥”)中输入 OpenAI API 密钥。

5.3 服务器 URL

输入服务器 URL 后,可以使用部署在组织基础架构中的 TestCraft API。同时,还可以通过下拉菜单选择更强大的模型。

  • 在第二个文本输入框(带有占位符“您的服务器 URL”)中输入服务器 URL。

5.4 选择您的型号

此下拉菜单允许在可用模型之间进行选择(更多模型即将推出)。

由于涉及成本,gpt-4o-mini默认情况下会选中,并且下拉菜单处于禁用状态。要启用其他模型,需要设置OpenAI API 密钥服务器 URL

6. 存在问题

  • 翻译为中文后,无法编辑

7. 注意事项

  • 兼容性:部分功能可能不适用于 Vue/React 动态渲染的页面。

  • 更新维护:定期检查插件版本,避免因浏览器升级导致失效。

8. 相关地址

WCAG

创建Open AI API密钥

服务器URL

testcraft相关文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. G K

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值