点击蓝字
关注我们
用Trae生成UI自动化测试步骤
UI自动化测试在大型企业级项目落地的挑战性在于,需要进行业务流程梳理、按需选择UI自动化测试用例,需要使用POM设计模式,需要花大量时间解决元素不易定位的问题,需要沟通协调能力(包括与上级、与研发的沟通)。
UI自动化测试成功的价值也是有目共睹的,可以缩减手工成本,可以保证快速交付的质量,虽然看似前期投入较高,但长远来讲可以提升项目交付的效率,提升团队的核心竞争力。
近几年,AI和大模型的发展,为基于自然语言的UI自动化测试脚本生成提供了便利条件。
Trae生成UI自动化测试脚本的步骤:
1.业务流程梳理。可以通过需求文档、设计原型等相关信息,让Trae对被测系统有充分的理解。
2.测试人员需要对Trae阐述明确的生成指令,提供准确的上下文信息,包括系统角色、环境信息等。
3.测试人员与Trae交互,使用提示词工程,不断地追问以澄清Trae对需求的理解。
4.Trae生成功能测试用例集,以此作为自动化测试脚本编写的基础;
5.生成初版UI自动化测试脚本。Trae将结合的需求文档、设计原型、自动化测试脚本所用到的编程语言、测试框架等,输出特定编程语言、测试框架的初始版自动化测试脚本。
6.评审和修改UI自动化测试脚本。
7.整理终版自动化测试用例。根据评审结果及测试策略,测试人员需要对测试用例进行提取,将有效的自动化测试用例进行整理和分类。根据测试阶段和测试目的不同,可以分为不同的自动化测试用例集,如冒烟测试和回归测试用例集。
通过以上步骤,测试团队可以利用Trae由自然语言的描述生成自动化测试用例的强大能力。相比与手动编写,大大地提高了生成自动化测试用例的效率。
当然,这里仍然需要测试人员对它生成的自动化测试用例进行提取、修改和评审,保证自动化测试用例的输出质量。
Trae集合测试框架
当前主流的UI自动化测试框架有Selenium、PlayWright、Cypress、Appium等。当Trae与主流测试框架集合时需要注意以下几点:
可以准备好测试框架的基本模版,对于初始化浏览器、基本控件定位、关键方法调用等通用操作。比如PlayWright框架中包含初始化浏览器、打开网页、定位元素并进行单击操作的通用测试脚本模版:
#初始化浏览器browser = playwright.chromium.launch(headless=False)context = browser.new_context()page = context.new_page()#打开网页page.goto(“http://test.com”)#定位元素并进行单击element = page.locator(“#id”).click()
实例:Trae生成UI自动化测试脚本
以一个百度首页为例, 我们来展开说明这个过程。
(一)明确向Trae描述的问题
对于百度首页项目的搜索功能,测试人员要测试搜索功能,确保搜索结果的正确性。
本次模块是"信息搜索",功能点是"关键字查询",该功能点是"利用输入的关键字进行查询,查询结果为匹配到的关键字内容。"请先理解这个功能点
(二)交互过程, 生成功能测试用例
测试人员与Trae进行不断交互。
你是一名高级测试工程师,
1.请根据上述功能需求,编写功能测试用例
2.测试用例编写规则:["
1)等价类划分法
将输入数据划分为若干等价类(有效等价类/无效等价类),从每个类中选代表性数据测试,覆盖同类其他数据的测试效果。
例:测试手机号输入时,有效等价类为“11位数字”,无效等价类包括“少于11位”“包含字母”等。
2)边界值分析法
针对输入/输出的边界值设计用例(通常取边界值及邻近值),因边界是错误高发区。例:密码长度要求5-13位时,测试4位、5位、13位、14位的情况。
3)场景法(流程图法)
按业务流程或用户操作场景设计用例,覆盖正常流程及异常分支。
例:导航功能场景需覆盖“输入目的地→规划路线→开始导航→到达终点”的主流程,及“导航途中偏离路线→重新规划路线”、“目的地输入错误→修改目的地后重新规划”等异常流程。
4)因果图法/判定表法
用因果图梳理输入条件与输出结果的因果关系,转化为判定表(含所有条件组合及对应结果),覆盖多条件组合场景。
例:判断“快递员能否将包裹存入快递柜”时,需考虑“快递柜有空闲格口”“包裹尺寸符合格口限制”“快递员已完成身份验证(如扫码登录)”等多条件组合。
5)错误推测法
基于经验或历史缺陷,推测可能出现错误的场景设计用例,弥补其他方法的遗漏。
例:测试文件上传功能时,刻意尝试上传超大文件、空文件或恶意格式文件。
6)正交试验法
当输入条件多且组合复杂时,用正交表挑选有代表性的组合进行测试,减少用例数量同时保证覆盖度。
例:测试不同浏览器(3种)、操作系统(2种)、屏幕分辨率(2种)的兼容性时,用正交表选取关键组合。"]
3.编写EXCEL格式的测试用例,1个正向,至少1个反向,测试用例文件已建好查询功能的测试用例.xlsx,
4.以条件查询功能的测试用例.xlsx为模板。
根据等价类划分法、边界值分析法等、场景法、因果图法、错误推测法、正交试验法设计测试用例,测试用例的列包含序号、前提条件、优先级、测试步骤、期望结果、实际结果、备注(如测试数据)
基于这一思路,Trae设计了12个测试用例,其中5个高优先级(核心功能验证),7个中优先级(异常情况处理)。测试人员对功能测试用例审核,得到6条(1高3中2低)功能测试用例。
(三)UI 自动化测试用例
可以根据已有的测试脚本模版,让Trae根据功能测试用例生成所有UI自动化测试用例。
接下来Trae根据功能测试用例和模板编写6条UI自动化测试用例并运行测试,可以查看测试结果。
(四)评审 、修改 、整理 UI 自动化测试用例
测试人员对生成的测试用例进行审核修改,并用整理后的自动化测试用例进行该功能的冒烟或回归测试。
Trae完全理解输入的自然语言指令,生成的部分代码如下所示:
def test_search_empty_keyword(self, browser_context):"""测试用例 1: 空值搜索"""logger = Logger()portal_page = PortalPage(browser_context)try:logger.info("开始测试: 空值搜索")with allure.step("打开百度首页"):portal_page.open()with allure.step("等待页面加载完成"):portal_page.wait_for_page_loaded()with allure.step("保持搜索框为空, 点击'百度一下'按钮"):search_input = "#kw"portal_page.page.click("#su")logger.info("点击百度一下按钮")with allure.step("验证页面仍停留在百度首页"):portal_page.page.wait_for_timeout(2000) current_url = portal_page.page.urlassert "baidu.com" in current_url and"wd="not in current_url, \ f"预期页面停留在百度首页, 实际 URL: {current_url}"logger.info(f" 页面仍停留在百度首页, URL: {current_url}")allure.attach("测试成功", "测试结果", allure.attachment_type.TEXT)logger.info(" 空值搜索测试通过! ")except Exception as e:logger.error(f" 执行过程中出现错误: {e}")screenshot_path = "screenshots/error_empty_search.png"portal_page.page.screenshot(path=screenshot_path)allure.attach(str(e), "错误信息", allure.attachment_type.TEXT)allure.attach(portal_page.page.screenshot(), "错误截图", allure.attachment_type.PNG)raise
......
本文节选自第九十一期《51测试天地》
原创文章
《AI辅助生成测试文档》
文章后续为大家详细讲解了:
用例命名规范、执行验证、用例抽取策略等
想继续阅读全文
或查看更多《51测试天地》的原创文章
请点击下方 阅读原文或扫描二维码 查看
声明:本文为51Testing软件测试网 枫叶 用户投稿内容,该用户投稿时已经承诺独立承担涉及知识产权的相关法律责任,并且已经向51Testing承诺此文并无抄袭内容。发布本文的用途仅仅为学习交流,不做任何商用,未经授权请勿转载,否则作者和51Testing有权追究责任。如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:editor@51testing.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

