自动化回归脚本化编排支持将测试用例的UI编排转换成脚本化编排,还可以将测试用例加入用例集后,在用例集中将加入的所有用例导出成JSON格式的脚本文件,然后使用本地编辑器对脚本进行修改后再导入到当前用例集或其他用例集中,方便您对用例进行迁移和管理。

前提条件

创建Spring Cloud测试用例

操作步骤

脚本化编排用例管理

  1. 登录EDAS控制台
  2. 在左侧导航栏,选择流量管理 > 微服务治理 > Spring Cloud
  3. Spring Cloud左侧导航栏,单击自动化回归(用例管理)
  4. 自动化回归(用例管理)页面顶部菜单栏选择地域,在页面中选择微服务空间,然后单击目标用例操作列下方的详情
  5. 用例详情页面右侧,单击/图标,切换到脚本模式;单击UI,切换到UI模式。

    关于用例管理的脚本参数说明,请参见用例管理脚本模式参数说明

    EDAS-UI模式
    说明 脚本模式下,不可进行访问一次的调试和保存配置等操作,请切换到UI模式操作。

脚本化编排用例集管理

  1. 登录EDAS控制台
  2. 在左侧导航栏,选择流量管理 > 微服务治理 > Spring Cloud
  3. Spring Cloud左侧导航栏,单击自动化回归(用例集)
  4. 自动化回归(用例集)页面顶部菜单栏选择地域,在页面中选择微服务空间,然后单击目标用例集操作列下方的详情
  5. 用例集详情页面右侧,单击导出脚本,在导出脚本对话框,单击导出

    关于用例集管理的脚本参数说明,请参见用例集管理脚本参数说明

    EDAS自动化回归导出脚本
    成功导出JSON格式的脚本文件。
  6. 使用本地编辑器对脚本进行修改,然后在用例集详情页面右侧,单击导入脚本,在导入脚本对话框,选择相同用例执行的操作,并单击上传文件,选择并上传本地的脚本文件,然后单击导入
    edas导入脚本
    相同用例是指该用例集下相同名称的用例,执行的操作说明如下:
    • 终止导入:此次操作选中的所有用例都不会被同步到目标微服务空间。
    • 跳过:跳过重复的用例,继续克隆其他用例。
    • 覆盖:用此次选择的用例覆盖目标微服务空间中已有的相同用例。

用例管理脚本模式参数说明

自动化回归功能支持将UI模式切换成脚本模式修改测试用例,再将脚本模式切换到UI模式进行调试和保存,脚本中有关请求的基础信息解析为测试步骤的API。

脚本模式相关的字段解析说明如下。

脚本字段字段解析
info.namespaceId微服务空间。
info.regionId地域。
info.schema脚本版本号。
item[]表示多个测试步骤。
item[0].name测试步骤的名称。
item[0].request.method请求方法。
regionId地域,支持Spring Cloud和Dubbo服务。
appId应用ID,支持Spring Cloud和Dubbo服务。
appName应用名称,支持Spring Cloud和Dubbo服务。
serviceType服务类型,支持Spring Cloud和Dubbo服务。
serviceName服务名称,支持Spring Cloud和Dubbo服务。
methodName方法名称,支持Spring Cloud和Dubbo服务。
methodTypes方法类型,仅支持Dubbo服务。
group组别,仅支持Dubbo服务。
version版本号,仅支持Dubbo服务。
method请求方法,仅支持Spring Cloud服务。
uri请求路径,仅支持Spring Cloud服务。
item[0].request.body参数基本信息。
contentType根据框架类型和ContentType区分,其中mode有urlencoded和raw两种模式:
  • "mode":"urlencoded":当框架类型为Spring Cloud服务时,可选此模式。入参信息填在对应的urlencoded中,以keyvalue的方式传入,例如:
    "urlencoded":[  
                   {                          
                   "key":"aa",            
                   "value":"11"
                    }    
                 ]
  • "mode":"raw":Spring Cloud服务可选此模式,Dubbo仅支持此类型,入参信息填在对应raw中,以字符串方式传入,例如:
    "raw":"[\"11234\"]"
mode
urlencoded
raw
item[0].request.header请求头。
key请求头的Key,仅支持Spring Cloud服务。
value请求头对应的Value值,仅支持Spring Cloud服务。
item[0].request.checkpoints断言。
point检查对象,为${}括起来的JsonPath,例如${response.name}
checkers.operate检查条件。
checkers.expect检查内容,即预期值。
item[0].request.exports出参提取。
key出参提取的出参名。
value对应的出参提取表达式,为${}括起来的JsonPath
说明
  • 脚本中的info信息仅做展示,转换成UI模式时以实际页面选择为准。
  • JSON脚本中,配置item[0] item[1] item[2]……表示有多个测试步骤。
  • 从脚本模式转换成UI模式时,将对脚本格式和request.method中的内容进行正确性校验,若不正确,则不允许转换。其中request.method.method为Spring Cloud框架类型基本信息中的请求方法,支持GET、POST、PUT和DELETE。
其中request.body.contentType支持以下7种类型。
contentType描述
application/x-www-form-urlencoded对应modeurlencoded
application/json对应moderaw
text/plain
application/javascript
text/html
text/xml
application/xml
说明 Dubbo服务仅支持contentType=application/jsonmode=raw的模式。
其中request.checkpoints.checkers.operate检查条件枚举如下。
checkers.operate描述
EQUAL_NUMERIC等于(数字)。
NOT_EQUAL_NUMERIC不等于(数字)。
GREATER_OR_EQUAL_NUMERIC大于等于(数字)。
LESS_OR_EQUAL_NUMERIC小于等于(数字)。
GREATER_NUMERIC大于(数字)。
LESS_NUMERIC小于(数字)。
EQUAL_STRING等于(字符串、区分大小写)。
NOT_EQUAL_STRING不等于(字符串、区分大小写)。
EQUAL_STRING_IGNORE等于(字符串、不区分大小写)。
NOT_EQUAL_STRING_IGNORE不等于(字符串、不区分大小写)。
CONTAIN_STRING包含(字符串)。
NOT_CONTAIN_STRING不包含(字符串)。
TIME_EARLY时间早于。
TIME_LATE时间晚于。
IS_NULL为空,表示没有该字段。
说明 checkers.operate为该字段时,无需设置checkers.expect
IS_NOT_NULL不为空,表示有该字段。
说明 checkers.operate为该字段时,无需设置checkers.expect
JSON_CONTAINJSON对象中包含此值。
JSON_NOT_CONTAINJSON对象中不包含此值。
JSON_ARRAY_NULLJSON数组是否为空数组。
JSON_ARRAY_NOT_NULLJSON数组是否为非空数组。
JSON_ARRAY_SIZE_EQUALJSON数组长度等于。
JSON_ARRAY_SIZE_GREATERJSON数组长度大于。
JSON_ARRAY_SIZE_GREATER_OR_EQUALJSON数组长度大于等于。
JSON_ARRAY_SIZE_LESSJSON数组长度小于。
JSON_ARRAY_SIZE_LESS_OR_EQUALJSON数组长度小于等于。
IS_JSON_OBJECT是否为JSON对象类型。
说明 checkers.operate为该字段时,无需设置checkers.expect
IS_JSON_ARRAY是否为JSON数组类型。
说明 checkers.operate为该字段时,无需设置checkers.expect
REGEX_COMPARE正则表达式。

用例集管理脚本参数说明

自动化回归用例集功能支持将加入用例集中的所有用例导出成脚本,然后使用本地用编辑器对脚本进行修改后导入到当前用例集或其他用例集中。

导出的脚本文件为JSON格式,字段解析和测试用例的脚本模式相比多了一层item,内容如下。

脚本字段字段解析
info.namespaceId微服务空间。
info.regionId地域。
info.schema脚本版本号。
item[]多个测试用例。
item[0].name测试用例的名称。
item[0].item[0].name第1个用例的第一个步骤的名称。
item[0].item[1].name第1个用例的第二个步骤的名称。
说明
  • 脚本中的info信息仅做展示,导入脚本时以实际页面选择为准。
  • JSON脚本中,配置item[0] item[1] item[2]……表示有多个测试用例。
  • 导入脚本时将对脚本格式和request.method中的内容进行正确性校验。若导入失败,则返回导入的总数、成功数、失败数和具体的失败原因。
  • 用例集下相同名称的用例将被识别为相同用例。若遇到相同用例时,可选择导入规则为终止导入、跳过或覆盖。