变量与赋值
直接变量赋值 & 使用变量
直接变量赋值语法:变量名=
变量值表达式
使用变量语法:${
变量名}
变量名 可以是任意有意义的字串,类似编程语言变量名;变量值表达式 可以直接使用一段固定文本,也可以是文本和其他变量值的混合。
商品名称=三鹿奶粉
商品名称1=蒙牛奶粉以及${商品名称} //商品名称1的值将是:蒙牛奶粉以及三鹿奶粉
点击${商品名称1} //服务认为该操作等同于:点击蒙牛奶粉以及三鹿奶粉
文本抓取变量赋值
语法:变量名=获取文本
文本定位语义
从页面上抓取文本,赋值给指定 变量名。抓取文本的位置使用指定的 文本定位语义 进行定位,此处常用动态语法中的相对位置定位语法。
点赞数=获取文本点赞图标右侧元素 //抓取点赞数量文本,赋值给点赞数变量
商品价格=获取文本${商品名}下侧元素 //抓取位于${商品名} 元素下侧的价格文本
请求获取变量赋值
语法:变量名=请求#
链接
有些时候需要UI自动化测试需要结合后端进行,比如从后端获取一个正在参加满减优惠的商品,用UI购买验证是否能下单成功。
此语法将发送GET请求至指定 链接,请求的返回以文本形式赋值给指定 变量名
限时购商品=请求#http://ip.cn //后续可以使用${限时购} 商品完成这个活动商品有关用例了
JSON变量解析
语法:新变量名=JSON解析#
${json变量名}解析语法
该语法用于解析合法JSON类型的变量中的值,用于后续的操作。
其中解析语法
可以理解为JavaScript对象操作的全套语法,比如json.id,json.array.length,json.array[0].name 等等,具体可以参考JavaScript相关标准。
具体举例说明如下所示:
//初始化变量:json变量
json变量={"id":123, "list": [{"name":"name0"},{"name":"name1"}]}
//json_id将被赋值为:123
json_id=JSON解析#${json变量}.id
//json_list_length 将被赋值为:2,也就是list这个数组的长度
json_list_length=JSON解析#${json变量}.list.length
//json_list_1stitem_name 将被赋值为:name0,也就是list第一个元素的name属性的值
json_list_1stitem_name=JSON解析#${json变量}.list[0].name
随机数变量
语法:${time}
简单随机数语法,变量名为time的变量值为当前的秒级日期显示(非timestamp)。
在评论输入框输入到此一游${time} //将会输入:到此一游201809011230
时间格式统一
语法:转化时间格式#
目标时间
将任意时间转化为 年-月-日 时 :分 :秒 的格式,目标时间 必须使用变量,目标不全时会自动补全。
时间=20220110202423
时间=转化时间格式#${时间} //时间被赋值为2022-01-10 20:24:23
时间=12:12
时间=转化时间格式#${时间} //时间被赋值为当年-当月-当日 12:12:00
时间=2022-01-10
时间=转化时间格式#${时间} //时间被赋值为2022-01-10 00:00:00
日期计算
语法1:跳板目标时间 日增加#
/月增加#
/年增加#
计算量
对 跳板目标时间 进行年月日加减计算,跳板目标时间 需要符合时间格式统一后的时间格式
时间=2022-01-31 20:24:23 //可通过转化时间格式语法对格式进行统一,详见上一语法
时间=${时间}日增加#1 //时间被赋值为2022-02-01 20:24:23
时间=${时间}月增加#-2 //时间被赋值为2021-12-01 20:24:23
时间=${时间}年增加#3 //时间被赋值为2024-12-01 20:24:23
变量切割
语法:${
待切割变量名}
切割语法
具体切割语法如下所示:
商品名=自营雅培奶粉similac 3段
存在${商品名}("自营","0") //存在雅培奶粉similac 3段
存在${商品名}["0","similac") //存在自营雅培奶粉
存在${商品名}("0","similac"] //存在营雅培奶粉similac
存在${商品名}("1","5"] //存在雅培奶粉
宏
语法:#宏
宏文件名.mtxt
<参数1>
<参数2>
用法详见宏的封装。