首页 > 其他分享 >元数据驱动的设想

元数据驱动的设想

时间:2024-09-30 14:47:24浏览次数:8  
标签:必填 填充 type 设想 表单 字段 驱动 数据

1.背景

针对相似结构的表单,为了提高ui自动化编写效率,减少以减少重复工作,设想是否可以设计一个针对neoUI2.0通过元数据驱动的方式适应不同业务对象的测试框架

2.设计元数据模型

- 字段名

- 字段类型

- 是否必填

-是否只读

- 默认值

- 业务逻辑(可选,后期扩展)

3.构建自动化测试框架

  1. 利用现有的RF框架已实现的功能,通过实体名称打开对应实体的表单

    1. 关键L进入【进入菜单】
  2. 关键字进入【点击新建业务数据】

  3. 实现元数据驱动的表单填充,根据元数据动态填充表单,循环获取元素找到元素对应的字段名,判定字段名类型然后输入具体的值

    1. fieldType=get_field_type(fieldName)
if fieldType==None:
    break
elif fieldType== 'text':
input_text(field.name, "sample text")
elif fieldType == '单选':
select_option(field.name, "option value")
# 其他字段类型处理...

4.编写测试用例

  1. 前置条件

    1. 根据实体名称通过api获取当前实体所有的字段,组装数据,并返回数据

    python def get_fields(opportunity): #通过api获取实体字段并取出字段相关信息 fieldDatas = '{"机会名称":{"type":"text","isReadOnly":"是","isRequired":"是","isDefault":"是"},"客户名称":{"type":"associated","isReadOnly":"否","isRequired":"否","isDefault":"否"}}' return fieldDatas

    b.根据打开表单上的字段名称,返回当前字段对应的类型,处理当前字段是否只读是否必填是否有默认值等

    python def get_field_type(fildName): for key, value in fieldDatas.items(): if fildName==key: if value['isReadOnly']=="是": break else: #如果是必填怎么处理 ,如果是有默认值怎么处理 return value['type']

  2. 只需要准备实体名称就可以针对表单上的字段添加一个默认的值并保存

    1. 优点:不需要准备非关联字段的测试数据,默认指定一个值
  3. 缺点:数据太死,不能指定值输入

5.利用数据驱动的方式动态添加表单布局?

  1. 准备测试数据
  2. 根据测试数据apikey字段布局表单设计器
  3. 实现元数据驱动的表单填充,根据元数据动态填充表单

5-1 :准备数据

  1. python data = {'opportunityName': '新商机', 'money': 10000,'accountId':123456789321}

5-2:根据测试数据apikey字段布局表单设计器

  1. 获取data中的key,通过后台布局设计器,把获取到的字段的apikey对应的字段配置到布局上面
  2. 如何才能通过准备好的一个apikey能设计好一个表单布局?待调研

5-3:实现元数据驱动的表单填充,根据元数据动态填充表单

上述条件成立的话,准备好哪些字段的数据,表单既可以布局配置哪些字段,跟进配置字段的数据和对应字段的值进行填充

5-4:优缺点

  1. 优点:可以根据业务场景准备指定的数据

  2. 缺点:

    1. 就是需要准备测试数据,字段的apikey需要一一对应
  3. 准备的数据需要根据一定的格式定义
  4. 自己需要写断言

5-5:后期扩展设想

  1. 准备的数据可扩展字段是否必填,是否只读
  2. 布局设计器改造通过是否必填只读然后布局配置对应的场景
  3. 准备数据传入断言结果,通过数据中的断言结果,直接断言,如此的话,只需要按照一定格式准备好数据,不需要编写任何代码
  4. 如果进一步完善的话 jira上写的用例按照一定格式设计,测试用例数据直接从jira获取,完全为全自动化执行,无需人为干预


本文永久更新地址:

https://www.fenxiangbe.com/p/元数据驱动的设想.html

标签:必填,填充,type,设想,表单,字段,驱动,数据
From: https://www.cnblogs.com/fenxiangbe/p/18441810

相关文章

  • Django项目实战:创建和迁移数据库
    Django项目实战:创建和迁移数据库一、配置数据库Django默认使用SQLite数据库,但你也可以选择其他数据库如MySQL、PostgreSQL等。在./settings.py文件中,你可以找到DATABASES配置,并根据需要进行修改。#数据库配置DATABASES={'default':{'ENGINE':'django.db.ba......
  • 第29篇 在Linux CentOS系统上部署SqlServer数据库,并实现内网穿透
    在Linuxcentos环境下安装部署sqlserver数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的sqlserver数据库,而无需公网IP,无需设置路由器,亦无需云服务器。1.安装sqlserver下载SQLServer2022(16.x)RedHat存储库配......
  • HIVE优化系列之数据倾斜
    数据倾斜在hive表中进行一系列join关联时经常会出现数据倾斜问题,可以通过hint将小表进行广播,从而提高查询的执行效率。第一种hint方法:/*+BROADCAST(small_table)*/SELECT/*+BROADCAST(small_table)*/*FROMlarge_tableJOINsmall_tableONlarge_table.id=s......
  • 如何找回电脑误删的数据?学会这几招就够了!
    随着电脑上累积的数据量不断攀升,意外删除重要文件的风险也随之增加,但不必过于担忧,因为误删文件通常并不意味着永久性的数据损失。实际上,只要采取正确的办法,我们有很大机会能够恢复这些丢失的数据。今天本文将为大家提供一些实用的数据恢复技巧和方法,帮助大家从电脑中找回那些不......
  • U盘变成RAW格式怎么办?数据如何恢复?
    U盘类型显示为RAW,导致无法正常读取或写入数据,怎么办?这种情况一般都表示U盘的文件系统无法被操作系统识别,可能原因包括:不正确的插拔操作、病毒攻击、电源故障等。当我们遇到U盘打不开变成RAW的时候不要慌,本文将告诉大家如何恢复U盘数据及解决RAW错误。一、U盘变成RAW是什么意......
  • mock数据,不使用springboot的单元测试
    业务代码packagecom.haier.configure.service.impl;importcom.baomidou.mybatisplus.core.toolkit.Wrappers;importcom.baomidou.mybatisplus.extension.service.impl.ServiceImpl;importcom.haier.common.util.RequestUtil;importcom.haier.configure.entity.Langu......
  • 小程序原生-利用setData()对不同类型的数据进行增删改
    1.声明和绑定数据wxml文件<view>{{school}}</view><view>{{obj.name}}</view><viewid="{{id}}">绑定属性值</view><checkboxchecked="{{isChecked}}"/><!--算数运算--><view>{{id+1}}</view&g......
  • WLAN无线网卡驱动安装教程
    火影官方驱动下载地址下载WLAN无线网卡驱动下载完成后点击全部解压缩解压完成后有一个安装说明,查看自己的网卡是什么品牌的,不知道就一个一个的全部都安装一遍安装过程不用管显示什么,结束了就进行下一个就行全部运行安装过一遍后重启查看是否有WiFi开关......
  • 【数据结构】链表(2)
     【LinkedList的模拟实现】这是java中的一个集合类,可以当成链表来使用,作为链表时,它视为包含三个域,是一个双向链表【构建LinkedList框架】publicclassMyLinkedList{staticclassListNode{publicintval;publicListNodeprev;//前驱......
  • 关系型数据库和非关系型数据库的区别
    1.常见的主流数据库关系型数据库:MySql  、达梦  、PostgreSQL、Oracle 、SqlServer、Sqlite非关系型数据库:Redis 、MongoDB 、HBase、Neo4J、CouchDB 2.介绍关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织,基于表格模型,......