自动化回归功能基于服务契约信息快速编排被测服务、管理自动化测试用例,帮助您高效管理、回归业务测试场景,完成业务快速验证和交付。本文介绍如何创建执行Dubbo测试用例。
创建Dubbo测试用例
登录EDAS控制台。
在左侧导航栏,选择 。
- 在Dubbo左侧导航栏,单击自动化回归(用例管理)。
- 在自动化回归(用例管理)页面顶部菜单栏选择地域,在页面中选择微服务空间,然后单击创建用例。
- 在创建用例页面,单击图标,设置相关参数信息。
配置项 描述 用例名称 自定义测试用例名称。 应用 选择需要测试的应用。 框架类型 选择Dubbo框架。 服务 选择应用的服务。 方法 选择服务的方法 基本信息 支持JSON格式的参数输入方式。其中默认入参为[]。 关于Dubbo服务的方法参数类型及配置方式,请参见Dubbo参考示例。
断言(选填) 输入检查对象和检查内容,选择检查条件。 出参提取(选填) 输入出参名和出参提取表达式。 - 单击右侧的访问一次,在单步骤调试结果面板,查看此次请求入参和请求出参。
- 单击出参提取助手,在出参提取助手对话框,单击需要提取的出参名,复制该参数。
- 在断言(选填)下方的检查对象中粘贴所复制的参数,选择检查条件,输入检查内容。
- 在出参提取(选填)下方的出参提取表达式中粘贴所复制的参数,并自定义出参名。设置完成后,单击右上方的保存配置。您可在用例列表中查看创建的测试用例。
创建多步骤串联的测试用例
登录EDAS控制台。
在左侧导航栏,选择 。
- 在Dubbo左侧导航栏,单击自动化回归(用例管理)。
- 在用例详情页面,单击右侧的访问一次,在单步骤调试结果面板,查看此次请求入参和出参。
- 单击出参提取助手,在出参提取助手对话框,复制选择需要提取的出参参数。
- 在出参提取(选填)下方的出参提取表达式中粘贴所选择的出参表达式,并自定义出参名。
- 单击+添加测试步骤增加多个测试步骤。
- 在该测试步骤的基本信息区域下方的JSON格式化中输入引用变量名${XXX}。说明
XXX
为前序步骤的出参提取(选填)中设置的出参名,需要用${ }
格式引用。 - 单击右上方的保存配置,然后单击立即执行。
创建包含子用例的多步骤串联的测试用例
一个测试用例可以包含多个测试步骤,假设某个用例作为子用例,需要被其他用例引用时,可以通过多步骤串联的方式引入同一个用例集中的其他测试用例,后续步骤可以使用前序步骤中的出参提取变量,做到更好的用例复用。
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择 。
在顶部菜单栏选择地域,单击目标用例右侧操作列的详情。
在用例详情页面单击添加测试步骤右侧的下拉箭头,然后单击添加子用例。
在步骤配置列表中单击测试步骤右侧的下拉箭头,在选择子用例下拉框中选择对应的子用例。
说明如果选择子用例无可选项,需要先在用例详情页面的高级设置区域中将此用例加入用例集。所选择的子用例为同一用例集下的其他用例。
如果无用例集或者加入用例集后仍无可选子用例,请先检查用例集中是否有测试用例。
单击右上方的保存配置,然后单击变量列表。
在变量列表面板中会出现子用例变量,后续测试步骤可直接引用子用例的出参提取变量。
继续添加其他的测试步骤,单击右上方的保存配置,然后单击立即执行。
您可以在执行历史页签中查看引用子用例变量的后续步骤中,参数被合适的替换执行。
执行测试用例
登录EDAS控制台。
在左侧导航栏,选择 。
- 在Dubbo左侧导航栏,单击自动化回归(用例管理)。
- 在顶部菜单栏选择地域。
- 您可选择以下两种方式执行测试用例。
- 在用例列表(用例管理)页面,单击目标用例右侧操作列的执行。
- 在用例列表(用例管理)页面,单击目标用例右侧操作列的详情,在用例详情页面,单击立即执行。
您可在执行历史页签查看详细执行结果。
相关操作
您还可以执行以下操作管理测试用例。
- 复制测试用例:在自动化回归(用例管理)列表页面,单击操作列的复制,可生成一条新的测试用例。
- 删除测试用例:在自动化回归(用例管理)列表页面,单击操作列的删除,可删除该测试用例。
Dubbo参考示例
方法 | 参数类型填写方式 | 参数填写方式 |
String sayHello(String name); | ["java.lang.String"] | ["hello, dubbo"] |
String helloBean(HelloBean helloBean); | ["com.alibaba.dubbo.api.DemoService"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloBean(HelloBean helloBean1, HelloBean helloBean2); | ["com.alibaba.dubbo.api.DemoService","com.alibaba.pts.dubbo.api.DemoService"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"},{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloMap(Map helloMap); | ["java.util.Map"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloMap(Map helloMap1, Map helloMap2); | ["java.util.Map", "java.util.Map"] | [{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"},{"booleanValue":true,"helloSubValue":{"booleanValue":false,"intValue":2,"stringValue":"subbean"},"intValue":1,"stringValue":"bean"}] |
String helloList(List helloList); | ["java.util.List"] | [[1]] |
String helloList(List helloList1, List helloList2); | ["java.util.List","java.util.List"] | [[1],[1,2]] |
String helloString(String helloString); | ["java.lang.String"] | [[1],[1,2],[1,3]] |
String helloString(String helloString1, String helloString2); | ["java.lang.String","java.lang.String"] | ["hello, dubbo", "hello, dubbo"] |
String helloInt(int helloInt); | ["int"] | ["hello, dubbo", "hello, dubbo"] |
String helloInt(int helloInt1, int helloInt2); | ["int","int"] | ["1","2"] |
String helloBoolean(boolean helloBoolean); | ["boolean"] | ["true"] |
String helloBoolean(boolean helloBoolean1, boolean helloBoolean2); | ["boolean","boolean"] | ["true","false"] |
String helloVoid(); | [] | [] |
文档内容是否对您有帮助?