Python接口自动化测试框架【四】

本文为博主原创,未经许可严禁转载。
本文链接:https://blog.csdn.net/zyooooxie/article/details/113543817

已经分享了前3篇,第一篇第二篇第三篇,继续分享。

在这里插入图片描述

接口自动化测试框架的 category,有兴趣,可以看看。

个人博客:https://blog.csdn.net/zyooooxie

需求

要将接口实际的返回值 和 expected data 做断言,如何来做呢?

assert_fun

    @staticmethod
    def assert_fun(dy, res):
        Log.info('处理后的断言:{}'.format(dy))
        res_json = res.json()
        res_json_str = str(res_json)

        if isinstance(dy, str):
            assert res_json_str.find(dy) != -1

        elif isinstance(dy, dict):
            for k, v in dy.items():
                Log.info('k:v 实际 {}:{}'.format(k, v))
                result = jsonpath.jsonpath(res_json, '$..'+k)[0]
                assert result == v

        elif isinstance(dy, int):
            assert res.status_code == dy
        else:
            raise Exception('处理后的断言 不合法')

sql_assert_fun



    @staticmethod
    def sql_assert_fun(dy, sql, res, db, cur):
        try:
            cur.execute(sql)
            data = cur.fetchall()
            Log.info('数据库执行sql的结果:{}'.format(data))
        except Exception as e:
            db.rollback()
            raise Exception('数据库 查询失败:{}'.format(e))

        Log.info('excel 期待响应的结果:{}'.format(dy))
        assert float(data[0][0]) == float(dy)

        res_text = res.text
        Log.info('请求实际响应的结果:{}'.format(res_text))
        assert res_text.find(str(data[0][0])) != -1

这部分代码:

  1. excel 无sql语句,断言,走assert_fun();
  2. excel 有sql语句,走sql_assert_fun();但实际有风险,只断言响应中 有此str;故而 增加一条用例。

在这里插入图片描述

这篇就主要这些内容;该系列第五篇 接口自动化框架之 测试用例

交流技术 欢迎+QQ 153132336 zy
个人博客 https://blog.csdn.net/zyooooxie

猜你喜欢

转载自blog.csdn.net/zyooooxie/article/details/113543817