内置函数列表
针对测试脚本需要的特殊功能,FWScripts提供内置函数库。
所有内置函数的调用方法:function($p1,$p2), 返回的结果一般放在$$里面,也可使用$var = function($p1,$p2)。
代码 | 描述 |
---|---|
显示器与WMI函数 | |
void SetDisplayByStr(string str) | Str按照格式 dddd*ddd 提供要设定的屏幕分辨率。 如果格式不对,则返回False, 否则设置好屏幕分辨率后,返回true。 |
void SetDisplayByDefault(string str) | Str按照格式 dddd*ddd(default) 提供要设定的系统默认的屏幕分辨率。 如果没有default,则返回。 |
void SetReSolution(int width, int height) | 按照指定的值设置屏幕分辨率。 |
string WMI(string field, string attribute) | 返回一个字符串,描述要寻找的值。 如果有多个,则返回第一个找到的值。 |
Dlist WMIList(string field, string attr1, string attr2, ... ... ) | 用于找到系统中对象的特性列表, 如果找到了,则$$为数据源变量,否则返回false。 |
bool IsHome() | 检查当前的操作系统是否为家庭版 |
string GetManufactor() | 获取制造商参数 |
字符串处理函数 | |
bool StrEndsWith(string first,string second) | 相当于first.EndsWith(second, ignoreCase = true) |
bool StrStartsWith(string first,string second) | 相当于first.StartsWith(second, ignoreCase = true) |
bool StrContains(string first,string second) | 相当于first.Contains(second, ignoreCase = true) |
int StrIndexOf(string first,string second or char) | 相当于first.Indexof(char) 或者 first.IndexOf(string) |
StrCompare(string first,string second or char) | 相当于first.Compare(second, ignoreCase = true) |
void FileDelete(string filename) | 如果该文件存在,则删除这个文件。如果以\开头,则前面自动加上installdir |
void FileCopy(string source, string target | 相当于File.Copy(overrite=true) |
void FileMove(string source, string target | 相当于File.Move() |
string ToLower(string source) | 字符串变小写 |
string ToUpper(string source) | 字符串变大写 |
系统进入睡眠函数 | |
void SetWake(v) | 设置系统醒来的时间,v秒后开始执行,缺省为30秒。 |
void S3() | 让系统进入S3(休眠) |
void S3Auto(v) | 让系统进入S3(休眠),然后V秒后自动醒来,如果不指定时间,则为30秒后自动醒来 |
void S4() | 让系统进入S4 |
void S4Auto(v) | 让系统进入S4,然后V秒后自动醒来,如果不指定时间,则为30秒后自动醒来 |
void SleepToS3() | 设置所有的动作都启动S3,动作包括:盖盖子、按电源 |
void SleepToS4() | 设置所有的动作都启动S4,动作包括:盖盖子、按电源 |
void SleepToS5() | 设置所有的动作都关闭机器,动作包括:盖盖子、按电源 |
void SetNoSleep() | 设置所有的动作都不起作用,动作包括:盖盖子、按电源 |
int GetSleepTo() | 获得当前设置的关盖子的动作,0:无动作,1:S3,2:S4,3:ShutDown,4:关显示器 |
电源相关函数 | |
int GetPowerState() | 返回电池的充放电状态,充电为1,放电为0 |
int GetPowerPercent() | 返回当前的电量的百分比整数值,如10%,返回10 |
int WaitPowerCharge(int target) | 等待当前电量充电达到target%,将显示一个等待的界面,返回等待的时间(以秒为单位) |
int WaitPowerDisCharge(int target) | 等待当前电量放电达到target%,将显示一个等待的界面,返回等待的时间(以秒为单位) |
string TimeFormat(int seconds) | 将以秒为单位的时间值转成格式化的时间描述,如65转换成“1 minute 5 second" |
void SetTimer() | 当当前时间设置成计时的起始时间 |
int GetTimer() | 将当前时间与前面设置的计时起始时间比较,获得以秒为单位的时间差 |
int PromptPowerOn() | 提醒测试者插电源,并检查是否已经插入 |
int PromptPowerOff() | 提醒测试者拔电源,并检查是否已经拔出 |
void SetSwitcher(string switchname,string ipstress) | 设置电源开关(开关名如“BizSmooth001”,服务器IP地址如“172.16.100.1”,或是端口号如“com3”) |
void PowerOn(int seconds) | 控制BizPowerSwitch,等待seconds秒后打开电源,缺省为立即打开电源 |
void PowerOff(int seconds) | 控制BizPowerSwitch,等待seconds秒后关闭电源,缺省为立即关闭电源 |
void PowerOnOff(int times,int beforeon,int afteron) | 控制BizPowerSwitch,重复打开关闭电源多少次(次数times,为0则一直重复;beforeon打开电源前等待的秒数;afteron关闭电源前等待的秒数),本调用为异步操作,即发出指令后立即退出,然后再后台执行这些动作。 |
void PowerOnOffStop() | 停止PowerOnOff重复打开关闭电源动作 |
void PowerOnOffWait(int times,int beforeon,int afteron) | 重复打开关闭电源多少次(次数times,为0则一直重复;beforeon打开电源前等待的秒数;afteron关闭电源前等待的秒数),本调用为同步操作,当所有动作做完后才退出。 |
void ChangeToBalance() | 将当前的电源策略设置成 平衡的电源策略 Balance |
检查USB等逻辑盘函数 | |
string GetLogDisk(string volumeName) | 返回第一个找到的逻辑盘,如果有参数,则该参数限定要找的逻辑盘,如“usb”,返回逻辑盘符,如“f:”;如果没有找到逻辑盘,则返回字符串":Can not find the disk" |
string GetAllLogDisk(string volumeName) | 返回所有 找到的逻辑盘,如果有参数,则该参数限定要找的逻辑盘,如“usb”,返回一个字符串,以“/”分割开所有的盘符,第一个字符总的个数,如“1/E:”或“2:/E:/F:”,如果没有找到逻辑盘,则返回字符串":Can not find the disk" |
string CheckLogDisk(string volumeName,string startwith,string filename) | 检查找到的第一个逻辑盘的内容(逻辑盘限定符如“usb”,文件开始的内容 startwith,文件名称filename),如果结果正确,则返回到$$的是从GetLogDisk延续过来的“E:”其中E为盘符,否则返回以:开头的错误描述(缺省为@"\lenovoat.txt", "Lenovo Testing" )。 |
string CheckAllLogDisk(string volumeName,string startwith,string filename) | 检查找到的所有逻辑盘的内容,逻辑盘限定符如“usb”,文件开始的内容 startwith, 文件名称filename),如果结果正确,则返回到SS的是从GetAllLogDisk延续过来的字符串。如果有出错的话,返回格式为以:开头的错误描述,紧跟两个数字字符:第一个字符表示有多少个错误,第二个字符表示一共有多少个逻辑盘,后面的描述以/隔开每个逻辑盘的检查结果。如果没错,为盘符。如果根本就没有找到相应的盘,则冒号后面再跟一个冒号。 |
系统设备清单比较函数 | |
void UseDeviceName() | 使用设备的名称进行比较,缺省情况为使用设备ID |
void UseDeviceID() | 使用设备的ID进行比较,通常情况下,每个设备的ID是唯一的,有的时候,U盘每次插入的时候其ID不一样,但名字是一样 |
void SetDeviceFilter("class1,class2,class3[,]") | 设置比较设备清单的时候的过滤器:只是检查或比较指定的PnPClass |
void SetDeviceAsDlist([0]) | 设置比较后返回的结果数据类型为Dlist,如果有参数,或者参数为0,则数据类型为字符串 |
DList GetDeviceDlist() | 获得当前所有的设备,如果指定了Filter,则只返回指定类别的设备信息 |
void AddDeviceIgnore("name1,name2,name3") | 添加忽略清单项,将名字为name的设备加入到忽略清单中,注意,当具有与服务器同步的功能的时候,该更改将会被覆盖掉 |
void RemoveDeviceIgnore("name1,name2,name3") | 添加忽略清单项,将名字为name的设备从忽略清单中去除,注意,当具有与服务器同步的功能的时候,该更改将会被覆盖掉 |
bool DeviceSetup([int mode] or [string modeStr])
bool DeviceSetup(string filename, mode or modeStr) | 设定需要比较的Device清单,如果指定filename,则从该文件中读取;如果不指定filename,则从系统中读取一次。mode与modeStr用来指定哪种睡眠模式,可以提供一个整数0:S3,1:S4,2:Reboot or Restart, 3:S5 or ShutDown;也可直接指定字符串,不区分大小写 |
bool DeviceSetupWithOne([int mode] or [string modeStr])
bool DeviceSetupWithOne(string filename, mode or modeStr) | 参数同上,后面比较的时候,使用同一份设备清单,无论是从文件中读取还是读取当前系统的设备清单,都会保留一份到默认的文件目录中。此处,如果filename=="", 则为从默认的文件目录中获取 |
[string | DList] CompareDevice() | 读取当前的设备配置,跟以前保存好的进行比较,输出差异。调用退出前将读取的设备清单保存下来,作为下次比较的基础。如果是Reboot或者Shutdown的模式,该调用会自动从外部文件中调入保存好的设备清单 |
[string | DList] CompareDeviceWithOne() | 读取当前的设备配置,跟保存好的进行比较,输出差异。调用退出前,不会将读取的设备清单保存下来,确保每次使用同一份保存的设备清单进行比较。如果是Reboot或者Shutdown的模式,该调用会自动从外部文件中调入保存好的设备清单 |
string FetchDeviceIgnore() | 在系统中,将所有需要忽略的设备清单放在一个文件中(c:/bizat/deviceignore.json),这个文件通过SUTAgent可以使用服务器上最新的版本进行替代,在每次进行设备比对的时候,会检查这个设备是否要忽略掉,如果忽略掉,则比较函数的调用不会返回差异信息,但这些忽略的信息会保存下来,由测试者调用这个函数来获取。返回刚刚比较后,被忽略的错误清单;每个错误一行,格式为TCC******,其中T为错误类型字符:-:disappear, =: errcode changed, +:new arrival, ?: 当前的设备状态有errorcode。cc为errorcode,如果T为=,后面跟上两个errorcode,表示前后的errorcode。 |
[string | DList] CheckDisappear() | 在前面的setup中,只保存有"关心的"设备清单,此调用检查当前的设备清单中是否包含所有的“关心的”设备清单,如果没有,则返回相应“消失的”的清单。每行一个设备信息。注意此处的检查不会使用设备忽略表。 |
[string | DList] CheckYellowMark() | 返回当前设备清单中所有errorcode不为0的设备,每行一个设备信息,格式为CC******,CC为errorcode。 |
其它函数 | |
int Cycle() | 从注册表中获取注册表项(缺省为BizCycle)的值,并将值自增加一 |
int GetCycle() | 从注册表中获取注册表项(缺省为BizCycle)的值,不自增 |
int GerRandom() | 返回一个1到100之间的随机数 |
string GetStepOption() | 根据percent书获取相应的stepOption,专用于SH stress的本地测试 |
int GetWorkingMode() | 获得当前的工作模式: 1.singlepc 2.network 3.standalone |
Dlist DisplayAllWindow() | 显示当前的所有window列表 |
string CompareIcons(Dlist before, Dlist after, bool isEn) | before与after 分别记录着之前与之后的系统Icon的信息(下面显示电池,声音,网络以及V形按钮点击后显示的icons),如果没有变化则返回空字符串"",否则返回描述信息 |
int GetIconState(int whichone, dlist iconJson, bool isEn) | 获得icon的状态: 1.battery; 2.wifi, 3.voice ,0:使用/隔开,返回所有的。 |
void SaveFile(string filename) | 将文件存到测试结果目录中 |
bool Kill(string processName) | 杀死相应的进程,返回成功与否 |
void MergeStep(int stepnum) | 将两个测试步骤合并,并将写入的信息分别对应到两个测试步骤的信息列表 |
string GetBizDT() | 返回当前日期与时间的BizSmooth格式字符串:2019-04-08-14-45-40 |
float GetCPUT() | 获得当前CPU的温度值,如果没获取成功,则返回0 |
float GetGPUT() | 获得当前GPU的温度值,如果没获取成功,则返回0 |
void SetLower() | 将键盘上的CapsLock灯去掉 |
string GetColor() string GetColor(int x, int y) | 获得指定位置或者当前鼠标位置上的颜色描述,格式为 “FF034A” |
string GetColorName() string GetColor(int x, int y) | 获得指定位置或者当前鼠标位置上的颜色描述,格式为 “Red”或者没有值(如果不是系统知道的颜色的话) |
bool IsColor(string) bool isColor(string, int x, int y) | 比较指定位置或者当前鼠标位置上的颜色描述是否与字符串一样,此处的描述为“FF034A”类型的描述,忽略大小写 |
bool IsColorName(string) bool isColorName(string, int x, int y) | 比较指定位置或者当前鼠标位置上的颜色标准描述是否与字符串一样,此处的描述为“Red”类型的描述,忽略大小写 |
<< FwScripts语句与代码对照表 | 控件类型与属性列表 >> |