虽然此平台有帮助文档,但是有一些特殊的写法及注意事项没有详细的说明,经过一段时间的摸索和运行,博主也对此平台用例的写法有一定的了解,在这里分享给大家。

自定义脚本

自定义脚本一般会在什么时候用到?比如某个功能每次执行用例前必须清理测试数据,但是从页面操作上无法做到清除工作,这时就需要自行写脚本去调用具体的业务接口或者直接执行具体的业务sql。再比如在执行某个步骤时,APP页面存在一个当天时间"年-月-日",像这种可变的数据就需要使用Groovy(Java)脚本来实现全局变量的存储和使用。

1、Groovy(Java)脚本

当一些数据是可变的情况下,可以使用代码的手段设置全局变量,设置全局变量目前只能使用Groovy(Java)。这里以当前日期为例子,讲解如何使用全局变量。

1)设置全局变量

// 获取当前日期
Calendar calendar = Calendar.getInstance();
String year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
String monthStr = (month < 10) ? "0" + month : String.valueOf(month);
String dayStr = (day < 10) ? "0" + day : String.valueOf(day);
String current_day = String.format("%s-%s-%s", year, monthStr, dayStr);
androidStepHandler.log.sendStepLog(1, "设置全局参数zmm_current_date", "值:" + current_day)
// 设置全局变量
androidStepHandler.globalParams.put("zmm_current_date", current_day)

2)获取全局变量

可以在定位或者断言等地方,调用全局变量,写法:{{变量名}}。当前时间全局变量-----{{zmm_current_date}}

3)使用结果

在测试用例中设置并使用全局变量,运行测试用例 image.png image.png

2、Python脚本

需要创建/清理数据时,可引入脚本执行业务sql,这里就用python来写。

当项目涉及多人时,其实可以封装公共代码,把脚本文件放到agent机器上的.\sonic-agent-v2.6.2-windows_x86_64\test-output目录下。这里博主已经将连接的数据库的方法写在了sql_base.py里,并放此目录下。此时在步骤上仅需要调用此方法即可操作sql。(仅提供思路)

1)清理数据脚本

# 清除数据
from sql_base import MysqlStructure

sql_list = [
            'res_customercore#update schedule_page set is_deleted = 0 where id = 0;',
            ]

MysqlStructure.handle_mysql(sql_list)

2)使用结果

在测试用例中使用python脚本,运行测试用例 image.png image.png

版权声明:如无特殊说明,文章均为本站原创,转载请注明出处

本文链接:http://zhangyanc.club/subject/article/sonic_case_1/

许可协议:署名-非商业性使用 4.0 国际许可协议