说到数据集就需要知道数据源,数据源是指提供数据的来源,可以是任何存储数据的地方,例如数据库等,说白了就是生成各种图形的数据来源前提需要配置好。
数据集是指从数据源中收集并组织在一起的数据的集合。简而言之新建数据集的前提会选择数据源。
每一种类型数据集都有输入输出,输入参数可以为多个,输出字段也可以为多个,参数支持自定义填充规则,下图为数据集类别,接下来我将介绍5种类型。
使用原始数据集可不用写SQL,根据所有字段自动编写SQL。
测试案例
步骤:选择数据源,填写数据集名称,【数据预览】就可看到数据。
通过一条SQL能获取到数据的地方都可以使用,可以是单表的操作也可以是多表联合查询。
测试案例
实现效果:统计device_water表data_group内容出现的次数。
步骤:选择数据源,填写数据集名称,输入SQL语句,点击【解析并运行】就可看到数据。
适用于展示的数据为固定值且数据在很长一段时间内不会改变的情况测试案例。
统计个人期末语文考试成绩单。
步骤:选择数据源,填写数据集名称,输入json脚本,点击【解析并运行】就可看到数据。
json脚本
[
{
"name": "张三",
"score": 85
},
{
"name": "李四",
"score": 78
},
{
"name": "王五",
"score": 92
},
{
"name": "赵六",
"score": 67
},
{
"name": "钱七",
"score": 80
},
{
"name": "孙八",
"score": 88
},
{
"name": "周九",
"score": 72
},
{
"name": "吴十",
"score": 90
},
{
"name": "郑十一",
"score": 76
},
{
"name": "冯十二",
"score": 83
}
]
适用于已有其他类型数据集无法满足需求或者数据在多个库表中,无法通过一个SQL进行查询情况。
实现效果:通过接口 获取销售数据,并且将销售额打8折展示。
步骤:填写数据集名称,输入脚本语句,点击【解析并运行】就可看到数据。
脚本
import com.gccloud.common.utils.JSON
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.json.JSONObject
OkHttpClient client = new OkHttpClient();
// 调用接口获取数据
Request request = new Request.Builder()
.url("http://gcpaas.gccloud.com/bigScreenServer//bigScreen/chart/data/mock/sales")
.build();
Response response = client.newCall(request).execute()
String responseBody = response.body().string()
// 解析有效数据data
def dataList = JSON.parseObject(responseBody).get("data").getJSONArray("data")
for (def item in dataList) {
JSONObject jsonObject = item
// 将sales数据 x 0.8 并进行取整数
jsonObject.put("sales", Math.ceil(jsonObject.getInt("sales") * 0.8))
}
return dataList
上面的脚本为Groovy脚本
JS数据集可以用于模拟数据,脚本执行为纯前端执行,不会调用后端接口,也就是说不涉及后端操作时,可以用js数据集形式进行数据模拟。
实现效果:适用js脚本随机生成10位姓名及年龄。
步骤:输入【数据集名称】,在下面的代码编辑器部分输入javascript代码,输入完毕后点击【解析并执行】,可以在数据预览模块看到代码执行后产生的数据,比如生成一个模拟用户信息的数据。
Js脚本
const userList = [];
const familyNames = [
"赵", "钱", "孙", "李", "周", "吴", "郑", "王", "冯", "陈",
"褚", "卫", "蒋", "沈", "韩", "杨", "朱", "秦", "尤", "许",
];
const givenNames = [
"伟", "芳", "娜", "秀英", "敏", "静", "丽", "强", "磊", "军",
"洋", "勇", "艳", "杰", "娟", "涛", "明", "超", "秀兰", "霞",
"平", "刚", "桂英", "华", "新", "建华", "建国", "建军", "鹏飞", "红"
];
for (let i = 0; i < 10; i++) {
const familyName = familyNames[Math.floor(Math.random() * familyNames.length)];
const givenName = givenNames[Math.floor(Math.random() * givenNames.length)];
const age = Math.floor(Math.random() * 30) + 20;
const user = { name: familyName + givenName, age };
userList.push(user);
}
return userList;
在测试脚本数据集时,【数据集】脚本数据集调试,功能实现调用接口提示403。
当时我的第一反应是不是脚本编写错误导致的,解决这个问题走了一点弯路,换了其他脚本尝试也都是提示403。
后来我把同一个脚本拿到postman 中尝试,能够调通提示200。
因此我判定应该是我们系统存在的bug,所以说当遇到报错无法确认是否是bug时可以借助于第三方工具进行对比,如果结果都是一样就说明脚本有错误,如果第三方工具正常,我们的工具有问题可以说明是程序问题。
上面主要针对每一类的数据集的使用场景做了介绍,同时提供了真实的案例,后续的操作过程就可以针对不同组件关联数据集,真正的实现了低代码,同时针对调试不通情况,提供通过第三方工具进行对比的方案。
......
本文为51Testing软件测试网
第七十八期51测试天地内容
剩余精彩内容请点击下方
阅读原文 查看