robot测试脚本基本写法
此文中使用的关键字均已定义,使用时可以直接调用;未定义关键字时,需要调用robot初始关键字
一、Setup 和 Teardown基本用法
eg:
Suite Setup dev_启动应用 settings
Test Setup dev_连接设备 192.168.123.11:5555
Test Teardown dev_关闭应用
在suite Settings里编辑
Suite Setup suite用例开始时执行一次
Suite Teardown suite用例结束时执行一次
Test Setup 模块suite里每条用例开始前运行
Test Teardown 每条用例运行结束后运行
二、用例基本写法
eg:
Module_040
[Documentation] CASE-4094 修改camera名称
[Tags] Module P0 Android
dev_launcher_进入Settings
dev_Settings_点击camera
dev_Settings_修改camera名称 new camera
sleep 2
${camera_name} dev_Settings_获取camera名称
should be equal ${camera_name} new camera
dev_Settings_修改camera名称 old camera
sleep 2
${camera_name} dev_Settings_获取camera名称
should be equal ${camera_name} old camera
dev_settings_关闭settings
1、标题:
格式: bug描述 /模块名称_用例编号
eg:
(1)Module_040
(2) 修改camera名称
2、标注:
[Documentation] CASE-编号 用例标题
[Documentation] CASE-4094 修改camera名称
3、标签:
[Tags] 模块 用例级别 适用产品
[Tags] Module P0 Android
4、关键字联想:
pycharm 编辑脚本 时,输入关键字相关的自符会自动联想出相关关键字
ride编辑器编辑脚本时,点击工具栏上方的K可以搜索关键字
5、脚本编辑
按照操作步骤进行关键字调用,部分关键字需要传入必要信息
eg:
Module_040 是在settings页面修改camera名称的用例
这条用例需要以下操作步骤:
1、进入settings页面[调用进入settings关键字]
dev_launcher_进入Settings
2、点击页面左侧camera,进入camera子页面[调用点击camera关键字]
dev_Settings_点击camera
3、camera子页面点击camera对应···,点击Rename,点击输入框输入new name进行保存[调用修改camera名称关键字]
dev_Settings_修改camera名称 camera
此关键字需要传入1个参数new name(编辑关键字时指定,必须传入新的camera名称)
4、查看是否修改正常[调用获取camera名称关键字]
${camera_name} dev_Settings_获取camera名称
此关键字是将 dev_Settings_获取camera名称 获取到的camera名称 赋值给${camera_name}
5、断言
should be equal ${camera_name} new camera
断言 A = B
此用例就是判断修改后的 ${camera_name} 是否等于 new camera
判断A=B时,需要验证的问题点,修改camera名称已完成
6、后面的步骤为将camera名称进行还原,即恢复原本的camera名称
此步骤时为了不影响其它需要判断camera名称的用例运行;
7、运行结束后将页面恢复到初始页面[调用关闭settings关键字]
dev_settings_关闭settings
注意:调用关键字时,一定要检查是否需要传入其它字符,缺少必要字符时关键字无法成功调用
三、压力测试脚本
eg:
bug-26484
Log Mneu页面休眠,唤醒屏幕
${times} set variable 1000 #设置循环次数
dev_连接设备 ${package} ${avtivity} 192.168.123.11:5555
FOR ${n} IN RANGE ${times}
dev_等待点击 id=
sleep 3 #设置息屏时长
dev_执行adb命令 adb shell input tap 500 500
sleep 3 #设置亮屏时长
Log 第${n+1}次执行完成
END
压力测试 与 非 压力测试的区别
压力测试调用FOR循环,使循环体内的用例能够持续运行,直到失败或循环次数完成;
FOR 循环的简单用法:
:FOR ${n} IN RANGE 循环次数
A
B
C
END
以:FOR 开头 以 END结束,ABC为循环体 ;
脚本运行过程中,非循环体只运行一次,循环体内的用例能够持续运行,直到失败或循环次数完成;
以上面case为例:
脚本运行时,只需要连接1次设备,而息屏亮屏操作需要循环运行
故 在循环之前 调用且只调用一次连接设备关键字
dev_连接设备 ${package} ${avtivity} 192.168.123.11:5555
循环体:
public_dev_等待点击 id=
public_dev_执行adb命令 adb shell input tap 500 500
按照用户使用习惯,不会进行频繁的息屏亮屏操作
所以在亮屏和息屏操作后设置休眠时间,等到休眠时间结束再次执行下一步
循环体优化如下:
public_dev_等待点击 id=
sleep 5 #添加休眠时间
public_dev_执行adb命令 adb shell input tap 500 500
sleep 5 #添加休眠时间