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

一、接口测试响应验证

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

  1. 通过接口响应值
  2. 通过查询数据库信息辅助验证

二、接口测试数据清理

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

  • 通过调用delete接口删除
  • 自动化测试使用干净的测试环境,每次自动化测试完成后,还原数据。

三、数据库操作注意事项

  • 直接对数据库操作是非常危险的行为
  • 权限管理严格的公司对数据库权限给的很低
  • 表结构复杂,随便删除数据会影响功能异常,甚至会出现系统异常。

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

  • 连接与配置
  • 查询数据与断言

4.1、数据库封装(Python)

  • 封装数据库配置
  • 封装 sql 查询操作
  • 调用方法执行 sql 语句
python 复制代码
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、数据库断言

python 复制代码
    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

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
睡不醒男孩0308232 小时前
第二篇:深入探索开源数据库高可用:构建基于CLup的PostgreSQL生产级高可用与读写分离架构
数据库·postgresql·开源·clup
Micro麦可乐4 小时前
Spring Boot 实战:从零设计一个短链系统(含完整代码与数据库设计)
数据库·spring boot·后端·哈希算法·雪花算法·短链系统
码农阿豪4 小时前
从零到一:Spring Boot快速接入金仓数据库实战
数据库·spring boot·后端
鼎讯信通5 小时前
风电光缆运维提质增效:G-4000A 光缆故障追踪仪破解风场巡检难题
运维·网络·数据库
数智工坊5 小时前
机器人运动控制:采样、优化与学习三大流派深度对比与实战
android·学习·机器人
ZC跨境爬虫5 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
三十..5 小时前
MySQL 从入门到高可用架构实战精要
运维·数据库·mysql
cfm_29146 小时前
Redis五大基本数据结构底层了解
数据结构·数据库·redis
真实的菜6 小时前
Redis 从入门到精通(十二):典型业务场景实战 —— 排行榜、限流器、秒杀系统、Session 共享
数据库·redis·python
你想考研啊7 小时前
mysql数据库导出导入
数据库·mysql·oracle