以码同学VIP课程中的微服务项目进行接口自动化实战

01
搭建项目结构

创建一个项目,名字自己起,课上叫微服务项目接口测试框架,初始项目结构如下,不要着急对着图去创建,看下方解释再创建

图片

配置:这是一个目录,用来存放公共信息的

公共配置:这是一个Resource,创建是右键配置New Resource

接口层:这是一个目录,用来管理和定义接口基本信息

按照项目业务进行分类管理

买家api:这是一个Resource,创建是右键接口层New Resource

卖家api:这是一个Resource,创建是右键接口层New Resource

管理员api:这是一个Resource,创建是右键接口层New Resource

基础服务api:这是一个Resource,创建是右键接口层New Resource

接口默认参数:这是一个目录,当接口参数比较多时,用来存储默认参数的,存到文件里, 方便管理

业务关键字:这是一个Resource,用来封装一些自定义的业务关键字,创建是右键接口层 New Resource

测试用例层:这是一个目录,用来管理所有测试用例

测试数据层:这是一个目录,管理测试数据的,测试数据存在文件

02
公共配置

根据项目情况,添加公共配置变量,各个服务的域名,数据库信息,redis信息,买家/卖家/管理员账号,并且导入需要的第三方库RequestsLibrary

图片

03
接口层各接口定义

首先在各个api分类中导入,注意是每个哦

在这里插入图片描述

01
买家api编写

每个接口定义都是一个用户关键字,右键选择New User Keyword

1、买家登录接口

图片

2、添加购物车接口

图片

3、清空购物车接口

图片

4、立即购买接口

图片

5、设置收货地址接口

图片

6、设置支付类型接口

图片

7、创建交易接口

在这里插入图片描述

8、确认收货接口

图片

9、评论接口

评论接口的参数是json串,参数较多,不方便一个个传递,所以将其作为整体传递

设计思路:

在[接口默认参数]目录中创建一个 评论.json文件,内容写所有参数的默认值,其中写xxxx代表这个是动态数据,必须每次都由调用方传递

图片

关键字入参的含义:

ordersn、{order_sn}、orders​n、{sku_id}都是必传参数,other给了一个默认值,表示可以不传,如果用户需要针对json参数里除了ordersn和skuid的参数进行测试时就要以{other}给了一个默认值,表示可以不传,如果用户需要针对json参数里除了order_sn和sku_id的参数进行测试时就要以other给了一个默认值,表示可以不传,如果用户需要针对json参数里除了orders​n和skui​d的参数进行测试时就要以{other}代表,${other}的传递规则是字符串形式的json格式字符串,key必须是jsonpath表 达式,value是要替换的新值

例如:

在这里插入图片描述

针对替换json串中的特定字段封装一个自定义关键字,在业务关键字.robot下创建一个用户自定义关键字如下,业务关键字需要导入JSONLibrary

图片

脚本解释:

第一行:读取 [接口默认参数] 目录下的评论.json文件,得到默认json参数

第二/三行:把用户传入的order_sn和sku_id更新到${comment_info}中去

第四行:判断other不等于default,说明用户传了其他数据,那么{other}不等于default,说明用户传了其他数据,那么other不等于default,说明用户传了其他数据,那么{other}转换成json

第五行:判断${other不等于default},调用[替换json数据]关键字替换并且返回数据

图片

02
卖家api编写

每个接口定义都是一个用户关键字,右键选择New User Keyword

1、卖家登录接口

在这里插入图片描述

2、创建商品接口

创建商品的参数是json串,参数较多,不方便一个个传递,所以将其作为整体传递

设计思路: 由于创建商品的接口参数里从业务上来说,没有不可重复的参数或者动态参数,所以我们将其整体作为参数传递

在[接口默认参数]目录中创建一个 创建商品.json文件,内容写所有参数的默认值

在这里插入图片描述
在这里插入图片描述

关键字入参的含义:

newparams给了一个默认值,表示可以不传,不传时接口使用默认参数发起请求,如果用户需要针对默认json参数里的某些字段进行修改,{new_params}给了一个默认值,表示可以不传,不传时接口使用默认参数发起请求,如果用户需要针对默认json参数里的某些字段进行修改,newp​arams给了一个默认值,表示可以不传,不传时接口使用默认参数发起请求,如果用户需要针对默认json参数里的某些字段进行修改,{new_params}的传递规则是字符串形式的json格式字符串,key必须是jsonpath表达式,value是要替换的新值

例如

在这里插入图片描述

脚本解释

第一行:读取默认参数

第二行:判断有${new_params}不等于default,说明用户传了其他数据

第三行:判断有${new_params}不等于default,调用[替换json数据]关键字替换并返回
在这里插入图片描述

3、确认发货接口

在这里插入图片描述

4、确认收款接口

在这里插入图片描述

5、获取商品sku信息接口
在这里插入图片描述

03
管理员api编写

管理员登录接口
在这里插入图片描述

审核商品接口
在这里插入图片描述

04
各个登录关键字封装

由于各个服务在测试时都必须先完成登录获取token,所以我们将各个服务的登录做成关键字 在业务关键字.robot下进行依次创建和封装

导入需要的
在这里插入图片描述

创建买家session和提取token 关键字

在这里插入图片描述

创建卖家session和提起token 关键字
在这里插入图片描述

创建管理员session和提取token 关键字

图片

04
测试用例脚本设计和编写

01
添加购物车接口测试

1、数据设计

采用数据驱动的方式来做,首先设计添加购物车测试用例数据文件,在测试数据层目录下创建一个买家接口测试数据.xlsx文件,sheet工作表名称添加购物车

数据如下:

在这里插入图片描述

2、数据驱动用例编写

创建买家接口目录

在测试用例层,创建买家接口目录

创建添加购物车测试集合

在买家接口目录下创建添加购物车测试集合,按照下图填写以及导入相关库

在这里插入图片描述

创建添加购物车接口模板

在添加购物车测试集合下创建一个用户关键字

在这里插入图片描述

创建测试用例

在添加购物车测试集合下创建一个测试用例

在这里插入图片描述

尝试执行

02
立即购买接口测试

1、数据设计

采用数据驱动的方式来做,首先设计立即购买测试用例数据文件,在测试数据层目录下的买家接口测试数据.xlsx文件,sheet工作表名称立即购买

数据如下:

在这里插入图片描述

2、数据驱动用例编写

创建立即购买测试集合

在买家接口目录下创建立即购买测试集合,按照下图填写以及导入相关库
在这里插入图片描述

创建立即购买接口模板

在立即购买测试集合下创建一个用户关键字

在这里插入图片描述

创建测试用例

在立即购买测试集合下创建一个测试用例
在这里插入图片描述

尝试执行

03
创建交易测试

1、数据设计

采用数据驱动的方式来做,首先设计创建交易测试用例数据文件,在测试数据层目录下的买家接口测试数据.xlsx文件,sheet工作表名称创建交易

数据如下:

在这里插入图片描述

2、数据驱动用例编写

创建测试集合

在买家接口目录下创建创建交易测试集合,按照下图填写以及导入相关库

在这里插入图片描述

创建交易接口模板

在创建交易测试集合下创建一个用户关键字
在这里插入图片描述

创建测试用例

在创建交易测试集合下创建一个测试用例

在这里插入图片描述

尝试执行

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐