暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

手把手教你设计接口自动化测试用例:建立数据库实例和测试用例表

355

设计接口自动化框架需要考虑测试用例存储的方式。在实际项目中,测试用例存储的方式有多种,可以存放在 Excel 表格中,也可以存放于 Yaml 文件中,而最好的方式是存放在 MySQL 数据库中,原因有几点:

● 现在 Docker 技术流行,可以通过 Docker 拉取镜像直接安装 MySQL,用于存放测试用例。

●Python 利用 PyMySQL 库可以很好地与 MySQL 数据库进行交互。

● 只要熟悉SQL 语句,就可以随时存储和读取测试用例的内容。

● 使用 MySQL 数据库存储测试用例便于后续的测试平台的开发。

因此,本文将采用 MySQL 数据库来存储测试用例。


01

建立数据库实例


使用数据库存放测试用例需要建立新的数据库实例,请先安装MySQL 数据库系统。在此基础上,需要通过Navicat 客户端连接 MySQL 数据库,新建一个数据库实例便可。步骤如下。

(1)通过 Navicat 客户端连接 MySQL 数据库系统,用户名为 root,密码为123456,数据库的端口号为 33506,IP 地址为 192.168.47.128,如图1所示。


 图1  连接 MySQL 数据库系统


(2)MySQL 数据库连接成功后,新建数据库实例,如图2所示。


  图2 新建数据库实例


(3)输入数据库实例的名称,并选择字符集和排序规则,如图3所示。


 图3 输入数据库实例名称


(4)单击“确定”按钮,便可新建成功,如图4所示。


 图4 数据库实例新建成功


02

建立主测试用例表


根据 手把手带你设计接口自动化测试用例(二):根据接口信息设计测试用例 中设计的主测试用例的字段来建立主测试用例表,此表主要用来存放主测试用例的内容,命名为test_case_list。接下来通过 CREATE TABLE 语句建立此表,并通过 INSERT INTO 语法向表中插入上篇文章中设计的 11 个测试用例的内容。


1)在 test 数据库实例中创建 test_case_list 表

通过 CREATE TABLE 语句创建 test_case_list 表,建表语句如例 1 所示。

【例1】创建 test_case_list 表。

CREATE TABLE `test_case_list` (
# 测试用例的编号,不为空,自增长
`id` int(0) NOT NULL AUTO_INCREMENT,
# 项目名称
`web` varchar(255) DEFAULT NULL,
# 项目模块
`module` varchar(255) DEFAULT NULL,
# 测试用例的标题
`title` varchar(255) DEFAULT NULL,
# 接口地址的路径
`url` varchar(255) DEFAULT NULL,
# 请求方法
`method` varchar(255) DEFAULT NULL,
# 请求头
`headers` varchar(255) DEFAULT NULL,
# cookies 秘钥
`cookies` varchar(1000) DEFAULT NULL,
# 请求主体信息
`request_body` varchar(1000) DEFAULT NULL,
# 请求主体的数据类型
`request_type` varchar(255) DEFAULT NULL,
# 关联
`relation` varchar(255) DEFAULT NULL,
# 预期业务状态码
`expected_code` varchar(255) DEFAULT NULL COMMENT ' 作为
断言标准 '
,
# 测试用例是否可运行
`isdel` int(0) NULL DEFAULT 1 COMMENT '0 为删除,1 为正常 ',
# 设置 id 为主键
PRIMARY KEY (`id`) USING BTREE
# 设置表的引擎为 InnoDB
) ENGINE = InnoDB ;


2)展示 test_case_list 表名和字段

通过 Navicat 客户端将 test_case_list 表创建成功之后,表的名称和字段的信息展示如图5所示。


 图5  test_case_list 表名及字段信息


3)向 test_case_list 表插入测试用例的内容

test_case_list 表创建成功之后,可以通过 INSERT INTO 语法向表中插入手把手带你设计接口自动化测试用例(二):根据接口信息设计测试用例中设计的 11 个测试用例的内容,插入语句如例 2 所示。

【例 2】向 test_case_list 表中插入测试用例的内容。

# 插入第一条测试用例
INSERT INTO `test_case_list` VALUES (1, 'zrlog', '登录模块',
' 密码错误 ', '/api/admin/login', 'post', '{\"Content-Type\":
\"application/json\"}'
, '{}', '{\"userName\":\"admin\",\
"password\":123456,\"https\":False,\"key\":1598188173501}'
,
'json', NULL, '1', 1);
# 插入第二条测试用例
INSERT INTO `test_case_list` VALUES (2, 'zrlog', ' 登录模
块 '
, ' 不携带密码参数 ', '/api/admin/login', 'post', '{\"Content
Type\": \"application/json\"}'
, '{}', '{\"userName\":\"admin
\",\"https\":False,\"key\":1598188173501}'
, 'json', NULL,
'1', 1);
# 插入第三条测试用例
INSERT INTO `test_case_list` VALUES (3, 'zrlog', '登录模块',
' 用户名错误 ', '/api/admin/login', 'post', '{\"Content-Type\":
\"application/json\"}'
, '{}', '{\"userName\":\"adminadminadmin
admin\",\"password\":\"ca72de92e7e1767aefe5853a282836e7\",\
"https\":False,\"key\":1598188173501}'
, 'json', NULL, '1', 1);
# 插入第四条测试用例
INSERT INTO `test_case_list` VALUES (4, 'zrlog', '登录模块',
' 用户名为非字符串类型 ', '/api/admin/login', 'post', '{\"Content
Type\": \"application/json\"}'
, '{}', '{\"userName\":123456,\
"password\":\"ca72de92e7e1767aefe5853a282836e7\",\"https\":
False,\"key\":1598188173501}'
, 'json', NULL, '1', 1);
# 插入第五条测试用例
INSERT INTO `test_case_list` VALUES (5, 'zrlog', ' 登录模块 ',
' 不携带用户名参数 ', '/api/admin/login', 'post', '{\"Content
Type\": \"application/json\"}'
, '{}', '{\"password\":\
"ca72de92e7e1767aefe5853a282836e7\", \"https\":False,\
"key\":1598188173501}'
, 'json', NULL, '1', 1);
# 插入第六条测试用例
INSERT INTO `test_case_list` VALUES (6, 'zrlog', '登录模块',
' 用 户 名 为空 字 符 串 ', '/api/admin/login', 'post', '{\"Content
Type\": \"application/json\"}'
, '{}', '{\"userName\":\"\",\
"password\":\"ca72de92e7e1767aefe5853a282836e7\",\"https\":
False,\"key\":1598188173501}'
, 'json', NULL, '1', 1);
# 插入第七条测试用例
INSERT INTO `test_case_list` VALUES (7, 'zrlog', '登录模块',
' 用 户 名 和密 码 正 确 ', '/api/admin/login', 'post', '{\"Content
Type\": \"application/json\"}'
, '{}', '{\"userName\":\"admin\",
\"password\":\"ca72de92e7e1767aefe5853a282836e7\",\"https\":
False,\"key\":1598188173501}'
, 'json', 'token=cookies.admin
token'
, '0', 1);
# 插入第八条测试用例
INSERT INTO `test_case_list` VALUES (8, 'zrlog', ' 文章管
理模块 '
, ' 发布文章 ', '/api/admin/article/create', 'post',
'{\"Content-Type\": \"application/json\"}', '{\"admin
token\":\"${token}\"}'
, '{\"id\":None,\"editorType\":\"m
arkdown\",\"title\":\" 付 出 \",\"alias\":\" 付 出 \",\"thumbnail
\":None,\"typeId\":\"1\",\"keywords\":None,\"digest\":None,
\"canComment\":False,\"recommended\":False,\"privacy\":
False,\"content\":\"<p> 付 出 </p>\\n\",\"markdown\":\" 付
出 \",\"rubbish\":False}'
, 'json', 'id_name=body.id,alias_
name=body.alias'
, '0', 1);
# 插入第九条测试用例
INSERT INTO `test_case_list` VALUES (9, 'zrlog', ' 文章管
理模块 '
, ' 修改文章 ', '/api/admin/article/update', 'post',
'{\"Content-Type\": \"application/json\"}', '{\"admin
token\":\"${token}\"}'
, '{\"id\":\"${id_name}\",\"editorType\
":\"markdown\",\"title\":\" 付出才能杰出 \",\"alias\":\"${alias_
name}
\",\"thumbnail\":None,\"typeId\":\"1\",\"keywords\":
None,\"digest\":\"<p> 付 出 </p>\",\"canComment\":False,\"recom
mended\":False,\"privacy\":False,\"content\":\"<p> 付 出 </p>\\
n\",\"markdown\":\" 付 出 \",\"rubbish\":False}'
, 'json', NULL,
'0', 1);
# 插入第十条测试用例
INSERT INTO `test_case_list` VALUES (10, 'zrlog', ' 文章
管理模块 '
, ' 删除文章 ', '/api/admin/article/delete', 'post',
'{\"Content-Type\": \"application/x-www-form-urlencoded\"}',
'{\"admin-token\":\"${token}\"}', '{\"oper\":\"del\",\"id\":\
"${id_name}\"}'
, 'data', NULL, '0', 1);
# 插入第十一条测试用例
INSERT INTO `test_case_list` VALUES (11, 'zrlog', ' 文 章
管理模块 '
, ' 查询文章 ', '/api/admin/article?keywords= 付出才
能杰出 &_search=false&nd=1598429806679&rows=10&page=1&sidx=
&sord=asc'
, 'get', '{\"Content-Type\": \"application/x-www
form-urlencoded\"}'
, '{\"admin-token\":\"${token}\"}', '{}',
'data', NULL, '0', 1);


4)展示 test_case_list 全表的内容

通过 Navicat 客户端工具执行 INSERT INTO 语句后,test_case_list 全表的内容如图6、图 7所示。


  图6  test_case_list 全表的内容(1)


 图7  test_case_list 全表的内容(2)


03

参考书籍

接口自动化测试项目实战:Python 3.8+Requests+PyMySQL+pyte》

ISBN:9787302593751

作者:江楚

定价:59元

扫码优惠购买


04

精彩推荐


文章转载自清华计算机学堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论