# AI自定义测试
AI自定义测试,是利用大模型能力,可以让用户使用自然语言描述用例,底层使用Minium驱动用例自动执行。它的主要优势如下:
- 用户无需写代码,用自然语言描述执行步骤即可,使用门槛较低
- 任务执行成功后,会自动生成本次任务执行过程的Minium脚本。用户可以将该脚本作为用例上传为Minium用例,后续可以快速执行本用例
使用前请仔细阅读使用须知:
- 目前AI自定义测试处于内测中,请在帮助页面,扫码加入云测官方企微群,联系群主评估需求,开通权限才能体验。如遇到问题,可以先查看最下方的常见问题,如仍有问题,请联系群主反馈,逐个排期查看
- 目前AI操作目前支持点击、简单输入、滑动,function_call,大模型断言等能力。如有其他需求,请联系群主评估
# 快速开始
在获得体验权限后,可以按照以下步骤开始AI自定义测试任务
# 一、 新建AI测试用例
在“AI用例”页面,新建测试用例,在弹出的窗口中,填写用例名称、优先级和用例描述。
其中,用例描述即本次AI探索过程的自然语言描述,尽量准确详细描述用例执行的过程。

# 填写用例描述Tips:
填写用例描述时,可以从人类视觉的角度去描述(会把当前屏幕截图给到大模型),以四川航空小程序为例,参考描述如下:
打开小程序后,执行以下步骤:
1. 在首页中,点击出发地下面的“成都”,进入更换出发地页面。
2. 在更换出发地页面中,在导航栏搜索“XIC”,在搜索结果中,选择第一个“西昌”,并返回购票页面
3. 在购票页面中,点击目的地下面的“北京”,进入更换目的地页面
4. 在更换目的地页面中,在导航栏搜索“NKG”,在搜索结果中,选择第一个“南京”,并返回购票页面
5. 在购票页面中,点击“搜索机票”,进入选择机票页面。途中如果遇到公告弹窗,要关闭这个弹窗
6. 能成功进入选择机票页面,任务成功。如果无法进入选择机票页面,任务失败
此外以下是一些有用的小Tips:
- 在描述滑动时,需要描述清楚是上下滑动还是左右滑动,这样大模型才好做成正确的判断
- 如果需要滑动到页面底部,可以直接描述说滑动到页面底部,加快执行流程
# 特殊操作
此外,AI自定义测支持以下特殊操作:
# 1. minium_func_call
minium_func_call 支持用户在大模型描述中,调用自己的函数,类似大模型function_call能力。
使用function_call能力的特别须知:
- 调用的函数,必需要上传到云测
- 函数的第一个参数,需要传入mini,详情可以参考下方示例。mini会把minitest.MiniTest实例传入到函数,方便用户使用minium的能力。注意即使函数不需要使用mini的能力,也需要将第一个参数设置为mini
使用示例如下:
用户已经将test_config.py和config/test_config.py已经上传到云测的Minium用例中。这两文件内容相同,这里只是为了演示在不同目录下,要如何调用。
test_config.py内容也很简单,有一个示例函数和示例类(再次提醒第一个参数要传入mini)。各种不同情况的调用方式描述如下:
- 调用 test_config.py 中的 get_config 函数:
从minium_func_call("test_config.get_config")中读取 [出发地] 和 [目的地] 信息
- 调用 test_config.py 中的 TestConfig 类中的 get_config 函数:
从minium_func_call("test_config.TestConfig.get_config")中读取 [出发地] 和 [目的地] 信息
- 调用 config/test_config.py 中的 get_config 函数:
从minium_func_call("config.test_config.get_config")中读取 [出发地] 和 [目的地] 信息
- 调用 config/test_config.py 中的 TestConfig 类中的get_config函数:
从minium_func_call("config.test_config.TestConfig.get_config")中读取 [出发地] 和 [目的地] 信息

调用的函数名、文件名、文件路径,请尽量使用英文,不要带有特殊符号,避免import失败
# 2. llm_assert
在描述中,如果要用assert能力,可以使用llm_assert。注意如果llm_assert失败,将终止当前Case测试。
例如,用户可以描述如下:
1、从minium_func_call("test_config.get_config")中读取 [出发地] 和 [目的地] 信息
2. 将出发地换成第一步中读取的 [出发地]
3. 将目的地换成[目的地]
4. llm_assert("出发地成功切换为[出发地],目的地切换为[目的地]")
在上述的描述中,大模型可以自己识别结果的[出发地] 和 [目的地] ,换成北京和上海,生成的llm_assert代码:
self.op_llm_assert('''出发地成功切换为北京,目的地切换为上海''')
# 二、 新建AI测试计划
AI测试用例新建完成后,点击“测试计划”页面,新建AI测试计划。填写计划名称,勾选需要执行的AI用例。
和Minium类似,云测会按照勾选的顺序执行用例。注意AI测试用例采用的是DDT的模式依次执行。

# 三、 提交测试任务
AI自定义测试任务是用Minium驱动执行的,所以它本质还是一个Minium类型的任务
AI自定义测试计划创建完成后,在“测试任务”页面,点击“新建任务”按钮。
在弹出窗口中,选择Minium
测试类型,在测试计划中,选择刚才创建的AI测试计划。
注意,所有AI测试计划的右侧都有AI任务的Tag标识

# 四、 查看测试报告
任务结束后,可以在测试报告页面查看执行结果。例如上述描述执行结果如下:

测试结果一般分为 测试成功 和 测试失败 。
- 测试成功,是AI按照描述,执行完成 。特别注意:这里是AI自我感觉执行成功,用户可以根据测试报告截图以及生成的Minium代码自行判断
- 测试失败 一般有几种情况:
- 根据任务描述返回失败:例如任务描述要求 ”如果找不到'广州',直接返回失败,结束测试",在探索过程中,未找到'广州',此时返回失败,并结束测试,在生成代码中,会带有
asesert Fasle, error_msg
的代码 - AI探索失败:AI按照任务描述,连续多次都无法成功,故返回失败。此时在用例执行结果的错误日志一般会有提示“AI探索连续失败了x次,结束测试”
- AI探索超时:AI还在探索中,但是任务规定的时间已经到了,结束测试,并返回失败
- 根据任务描述返回失败:例如任务描述要求 ”如果找不到'广州',直接返回失败,结束测试",在探索过程中,未找到'广州',此时返回失败,并结束测试,在生成代码中,会带有
测试成功的代码,可以直接下载,作为Minium用例上传到云测,直接跑测Minium任务

# 常见问题
# 1. 为什么AI探索耗时较长,下载的Minium的用例很快就执行完成了?
AI任务过程比较长,需要多次和大模型交互,每一步的耗时都会较长,而生成好的Minium的用例只需要执行就可以,无需和大模型再次交互,所以速度会快很多
# 2. AI任务生成不及预期应该怎么办?
建议可以先观察下测试报告,看看AI在哪里出错的,然后对应优化任务描述。 如果仍有问题,可以加入云测官方企微群,联系群主反馈
# 需要帮助
如果你任何建议或需求,欢迎前往 需要帮助 页面,扫码加入云测官方企微群,联系群主反馈。