低代码平台实战:5个数据集案例分析及高效测试技巧

科技   2024-07-03 17:30   上海  
点击蓝字,立即关注

01

数据集介绍


说到数据集就需要知道数据源,数据源是指提供数据的来源,可以是任何存储数据的地方,例如数据库等,说白了就是生成各种图形的数据来源前提需要配置好。


数据集是指从数据源中收集并组织在一起的数据的集合。简而言之新建数据集的前提会选择数据源。


每一种类型数据集都有输入输出,输入参数可以为多个,输出字段也可以为多个,参数支持自定义填充规则,下图为数据集类别,接下来我将介绍5种类型。

02

数据集调试案例


原始数据集


使用原始数据集可不用写SQL,根据所有字段自动编写SQL。


测试案例

步骤:选择数据源,填写数据集名称,【数据预览】就可看到数据。


自助数据集


通过一条SQL能获取到数据的地方都可以使用,可以是单表的操作也可以是多表联合查询。


测试案例

实现效果:统计device_water表data_group内容出现的次数。

步骤:选择数据源,填写数据集名称,输入SQL语句,点击【解析并运行】就可看到数据。


JSON数据集


适用于展示的数据为固定值且数据在很长一段时间内不会改变的情况测试案例。


统计个人期末语文考试成绩单。


步骤:选择数据源,填写数据集名称,输入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.JSONimport okhttp3.OkHttpClientimport okhttp3.Requestimport okhttp3.Responseimport 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()// 解析有效数据datadef 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数据集形式进行数据模拟。


实现效果:适用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;
03

调试不通如何排查原因


在测试脚本数据集时,【数据集】脚本数据集调试,功能实现调用接口提示403。

当时我的第一反应是不是脚本编写错误导致的,解决这个问题走了一点弯路,换了其他脚本尝试也都是提示403。


后来我把同一个脚本拿到postman 中尝试,能够调通提示200。


因此我判定应该是我们系统存在的bug,所以说当遇到报错无法确认是否是bug时可以借助于第三方工具进行对比,如果结果都是一样就说明脚本有错误,如果第三方工具正常,我们的工具有问题可以说明是程序问题。


04

总结


上面主要针对每一类的数据集的使用场景做了介绍,同时提供了真实的案例,后续的操作过程就可以针对不同组件关联数据集,真正的实现了低代码,同时针对调试不通情况,提供通过第三方工具进行对比的方案。


......

本文为51Testing软件测试网

第七十八期51测试天地内容

剩余精彩内容请点击下方

 阅读原文 查看




声明:本文为51Testing软件测试网M&T.用户投稿内容,该用户投稿时已经承诺独立承担涉及知识产权的相关法律责任,并且已经向51Testing承诺此文并无抄袭内容。发布本文的用途仅仅为学习交流,不做任何商用,未经授权请勿转载,否则作者和51Testing有权追究责任。如果您发现本公众号中有涉嫌抄袭的内容,欢迎发送邮件至:editor@51testing.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。


点分享
点收藏
点在看
点点赞

51Testing软件测试圈
博为峰20周年,青春正当燃,一起向未来! 博为峰51Testing软件测试圈——坚持以专业技术为核心,关注软件测试领域最前沿技术和管理思想,凝聚行业力量,共同分享软件测试理论与实践经验,是一个测试人的生活与技术圈。
 最新文章