写点什么

软件测试 / 测试开发丨接口自动化测试学习笔记,数据库操作与断言

作者:测试人
  • 2023-11-15
    北京
  • 本文字数:980 字

    阅读完需:约 3 分钟

免费领取:测试资料+测试用例+简历模板+测试文档

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:https://ceshiren.com/t/topic/27985

一、接口测试响应验证

如何在测试过程中验证接口没有 Bug?

  1. 通过接口响应值

  2. 通过查询数据库信息辅助验证

二、接口测试数据清理

自动化测试中会产生大量的脏数据,该如何清理?

  • 通过调用 delete 接口删除

  • 自动化测试使用干净的测试环境,每次自动化测试完成后,还原数据。

三、数据库操作注意事项

  • 直接对数据库操作是非常危险的行为

  • 权限管理严格的公司对数据库权限给的很低

  • 表结构复杂,随便删除数据会影响功能异常,甚至会出现系统异常。

四、接口自动化测试常用的数据库操作

  • 连接与配置

  • 查询数据与断言

4.1、数据库封装(Python)

  • 封装数据库配置

  • 封装 sql 查询操作

  • 调用方法执行 sql 语句

class Mysql:    @classmethod    def connect(cls):        mysql_info = {            "host": "litemall.hogwarts.ceshiren.com",            "port": 13306,            "user": "test",            "password": "test123456",            "database": "litemall",            "charset": "utf8mb4"        }        conn = pymysql.Connect(**mysql_info)        return conn
@classmethod def execute(cls, sql): cnn = cls.connect() sor = cnn.cursor() sor.execute(sql) res = sor.fetchall() sor.close() cnn.close() return res
复制代码

4.2、数据库断言

    def test_cart_add(self, good_sn='CC102101'):        """测试添加购物车功能"""        with allure.step("获取商品的id"):            ids = self.good.id(good_sn)        with allure.step("获取商品的good_id和product_id"):            good_id = ids[0]            product_id = ids[1]        sql = f"""                         SELECT number FROM litemall_cart where goods_sn='{good_sn}' and goods_id='{good_id}'        """        good_num1 = Mysql.execute(sql)[0][0]        print(good_num1)        with allure.step("添加商品到购物车"):            print(self.cart.add(good_id, product_id))        good_num2 = Mysql.execute(sql)[0][0]        print(good_num2)        assert good_num2 - good_num1 == 1
复制代码


发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨接口自动化测试学习笔记,数据库操作与断言_软件测试_测试人_InfoQ写作社区