AI自动化测试工具Testim使用教程

目录

一、Testim 和 Katalon studio 使用对比

二、使用步骤

1、登录

2、功能区简单介绍

3、创建测试组、测试用例

4、录制脚本

5、调试、优化脚本

6、添加断言

6.1  正常操作

6.2  改进方法

7、保存用例

8、邀请同事加入团队

9、疑难解答

9.1  调试时遇到“Error while trying to play test, the test is too long”报错怎么办?

9.2  录制图标显示灰色,不能录制脚本怎么办?

9.3  录制时定位准确,执行时没有定位到导致阻塞怎么破?


修改记录:

2024/10/11          增加“6、添加断言”章节

2024/10/15          补充“3、创建测试组、测试用例”,增加“6.2  改进方法”、“8、疑难解答”

2025/02/25          增加“8、邀请同事加入团队”,补充“1、登录”的注意事项

前言

最近摸索了2个自动化测试工具,个人推荐Testim,这是一个国外的AI自动化测试工具,使用这个工具可在版本迭代时对整个平台系统进行一轮测试,无需人工再测试一遍,当然如果有模块更新了,就要更新脚本。

一、Testim 和 Katalon studio 使用对比

Katalon studio是我2024年用过的最垃圾的自动化工具,避雷!

Testim工具的优点:

①定位精确,能识别鼠标悬浮、鼠标中键上下滑动操作

②可视化界面,支持编辑脚本中的参数

③执行测试速度更快捷

④能设置文本、图片形式的断言

⑤无代码平台,不需要过多学习成本

二、使用步骤

官方使用指南链接:Shared Steps

1、登录

登录官网https://www.testim.io/,点击TRY TESTIM FOR FREE,支持工作邮箱、谷歌账号、GitLab账号登录,一个账号登录支持免费使用15天。注意:①请用公司的公共账号,不要用员工私人账号,公司务必要做好账号管控,不然员工离职时,发现员工的某些产出无法迁移/共享/导出/复制给交接人(员工不可能拿私人的Github账号密码给公司随意使用);②如果你的Github账号是用QQ邮箱注册的,那么不要用这个Github账号去登Testim去录脚本,因为邀请别人时只允许用企业邮箱,用其他邮箱会报错!

2、功能区简单介绍

3、创建测试组、测试用例

成熟的打工仔都知道,分门别类管理好文件是多么重要!我们在一开始就要创建好文件层级。点击左侧导航栏的Test List,点击,可选择New folder(新建多个文件夹,用于放置不同角色的测试用例,执行时先登录待测角色的账号,再点击run。)或New test,方便起见,我直接新建测试用例,页面跳转到Editor界面,设定待测平台的网址,点击图标可编辑网址。点击图标开始录制脚本,浏览器会自动弹出弹窗。

记住:首次录制脚本要先登录待测平台,输入账号密码;后面测试时打开平台的待测账号就行,无需输入账号密码验证码,这点比另一个自动化测试工具katalon studio要好用得多。

4、录制脚本

在弹窗中执行一遍测试,点击图标停止脚本录制。脚本会按照录制时的顺序一步步依次呈现。

点击图标可从此处开始执行测试。

当遗漏某些步骤时可点击图标进行补充。

支持按住鼠标左键框选、单击鼠标左键单选、按住ctrl多选,点击图标可删除多余、冗余步骤。

5、调试、优化脚本

脚本录制完成后需多调试运行几次,排查定位不准确、测试逻辑不周全等问题。

脚本优化可采取一下技巧:

①执行编辑、删除操作前先查询筛选,防止误删、误操作

②设定自动化测试专用的账号,防止污染、破坏以前的数据

③新增后可以删除,不留痕

④先登录号待测试的账号、准备好数据,数据都没有咋测呢

⑤给每次自动化测试的步骤添加标签,提醒使用者知道哪一步要更新参数,例如给标题添加♥符号

6、添加断言

6.1  正常操作

做过性能测试的同学都知道,每个关键接口必须添加断言,那么自动化测试的目的是解放双手、双眼,让我们把精力分配到更大价值的任务上去,所以怎么在testtim中添加断言呢?常用有2种:文本断言、图片断言,步骤如下:点击图标,弹出预定义步骤列表,点击VALIDATIONS,可选断言方式(AI断言还没有试过,有尝试过的同学可以评论补充),弹出窗口选择符合预期结果的文本或图片,点击1次,断言添加成功!执行时会进行验证,就不用我们看执行情况了。

6.2  改进方法

添加断言确实有用,但每一个操作都得停止录制后再一个个添加就好麻烦,最近琢磨出更好的方法,把断言加入到录制脚本的步骤中去,例如要录制查询学号的功能,一般步骤:点击学号搜索框、输入特定学号、回车、点击停止录制、点击回车步骤添加学号的断言,优化步骤:点击学号搜索框、输入特定学号、回车、点击查询结果里的特定学号、点击停止录制。

7、保存用例

常点击。今天电工师傅修电灯,突然跳闸,电脑断电,我又得录制一遍脚本,以后公司来了电工,就要警惕起来,随时保存数据。

8、邀请同事加入团队

按照图中的顺序执行,第3步输入被邀请人的企业邮箱,人机身份验证通过后点击 INVITE ,会有邀请邮件发送给同事,打开邮件确认加入,同事可以查看、编辑和运行项目中的所有测试、查看测试结果以及邀请其他用户。具体细节点击该链接了解: Project users management

 

9、疑难解答

9.1  调试时遇到“Error while trying to play test, the test is too long”报错怎么办?

录制脚本过长,预估超过900个步骤就会提示这个错误,脚本不能执行,那么我们就在Test List里点击Play,就会完整执行整个脚本。

9.2  录制图标显示灰色,不能录制脚本怎么办?

录制图标显示灰色可能是正在运行脚本、正在录制脚本或你有异常操作,这时点击顶部动作栏的Start recording,再点击停止录制,回到Testim点击某步骤就能录制脚本了

9.3  录制时定位准确,执行时没有定位到导致阻塞怎么破?

方案1:删除该步骤,重新录制,例如:点击查询没有定位到就删除原步骤,重新录一下点击查询这个操作

方案2:点击该步骤的设置图标,点击Targetelement里的Reassign,重新定位一下

### 微调 DeepSeek 并实现 RAG #### 定义微调目标和数据准备 为了使 DeepSeek 获得特定领域的知识或新知识,可以通过细调来达成这一目的[^3]。这不仅能够提升模型在特定领域内的表现,还能优化其处理复杂查询的能力。 ```python from datasets import load_dataset, DatasetDict # 加载自定义的数据集并将其分割成训练集和测试集 data_files = {"train": "path_to_train_data", "test": "path_to_test_data"} dataset = load_dataset('csv', data_files=data_files) # 如果需要的话,可以对数据集进行预处理操作 def preprocess_function(examples): return tokenizer(examples['text'], truncation=True) tokenized_datasets = dataset.map(preprocess_function, batched=True) ``` #### 执行微调过程 完成数据准备工作之后,下一步就是设置微调参数,并启动实际的微调流程。此阶段涉及到选择合适的硬件资源、配置超参数以及监控训练进度等方面的工作。 ```python import transformers from transformers import AutoModelForSequenceClassification, TrainingArguments, Trainer model_name = 'deepseek-model-name' model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=2) training_args = TrainingArguments( output_dir='./results', evaluation_strategy='epoch', learning_rate=2e-5, per_device_train_batch_size=8, per_device_eval_batch_size=8, num_train_epochs=3, weight_decay=0.01, ) trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"] ) trainer.train() ``` #### 整合 RAG 技术 当完成了上述微调工作后,接下来要做的便是引入检索增强生成技术(Retrieval-Augmented Generation),即RAG。该方法允许模型利用外部文档库中的信息作为补充材料,在生成回复时提供更加精准的内容支持[^1]。 ```python from langchain.chains.hybrid_search_chain import HybridSearchChain from langchain.vectorstores import FAISS from langchain.embeddings.openai import OpenAIEmbeddings embeddings = OpenAIEmbeddings() vectorstore = FAISS.load_local("faiss_index_directory", embeddings) rag_model = HybridSearchChain.from_llm_and_vectorstore(llm=model, vectorstore=vectorstore) ``` 通过这种方式,不仅可以保持原有优势——如无需频繁更新内部参数即可适应新的知识点;同时也克服了一些局限性,比如减少了对外部数据库依赖所带来的额外开销等问题[^2]。
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值