目录
前言
应该也有很多人跟我一样无聊,希望在用CANoe测试前设置一个密码,以来控制对该工程的授权使用。
目前我有2种比较好的方案:
- 在自动化测试脚本中实现,主要基于Vtest studio和Test Module在自动化测试中实现,本文先介绍这个方法;
- 在实体节点中实现(.can),主要基于CAN收发机制和CAPL标准库,这个方法放到后面空了再写。
一、Vtest studio 和Test module是什么?
这两个都是Vector提供的自动化测试工具,但是Vtest studio是需要额外购买license的,而Test module则不需要,针对这两个工具没有基础的同学可以直接去B站上搜它们的课程,直接看官网提供的就ok了。
二、使用步骤
1.编制函数
代码如下(示例):
//8是密码的长度,示例密码“MacWang",区分大小写
testfunction login()
{
char psw[8] = "MacWang"; //定义了一个8个长度的string类型的密码
char asw[8];//定义了一个空的字符串以让用户输入
int pos;
int qos;
testWaitForStringInput("PassWord:",30000); //弹出窗口让用户输入密码,30秒时间
testGetStringInput(asw,8); //获取用户输入的密码
pos = mbstrstr(asw,psw);//如果用户输入的字符串长度和密码长度相同则返还0
qos = mbstrncmp(asw, psw,elcount(psw));//如果用户输入的密码和设置的密码内容一样则返还0
if(pos != 0 && qos !=0)//当密码长度和密码与用户输入不一致时
{
TestWaitForMessageBox("Incorrect password",2000); //弹出窗口提示该密码不正确并停止运行,2秒时间
stop();
}
}
2.潜入到脚本
以test module 为例,vTest studio直接潜在test case中运行即可
Maintest()
{
login();
}
提示
标签:asw,登录,module,CAPL,密码,studio,Test,psw From: https://blog.csdn.net/m0_46486085/article/details/143530479该函数有且只能在vTest studio和test module中使用,不可直接在节点上运行,我的第二种方案可在真实节点运行,后期继续介绍。
ps: 示例中的密码我是用字符串做的,也可以用其他数值或混合类型做,大家自行拓展。