接口自动化的架构是怎么样的,以及pytest/unittest的断言使用

接口自动化测试的架构通常包括以下几个主要组件:

  1. 测试框架:选择合适的测试框架,如JUnit、TestNG、Pytest等,用于编写和管理测试用例。

  2. HTTP客户端库:用于发送HTTP请求和接收响应,比较常用的有Requests (Python)、RestAssured (Java)等。

  3. 数据驱动:可以使用Excel、CSV、数据库等存储测试数据,实现数据驱动测试,增加测试覆盖范围。

  4. 断言库:用于对接口返回结果进行断言,验证接口是否按预期工作等。

  5. 日志记录:记录测试执行过程中的关键信息,方便排查问题和生成测试报告。

  6. 报告生成:生成易读的测试报告,通常包括测试结果、覆盖率、失败原因等信息,有助于团队快速了解测试结果。

  7. 环境配置管理:针对不同的环境(开发、测试、生产等),需要灵活配置接口地址、认证信息等参数,方便在不同环境下运行测试。

综合以上几点,一个好的接口自动化测试架构应该具备灵活性、可维护性和扩展性,能够有效地支持接口测试的自动化执行和管理。

这里已断言举几个例子,均为python测试框架的

pytest框架的断言

在Pytest中,断言(assertions)是用于验证测试结果是否符合预期的关键部分。Pytest提供了丰富的断言方式,常用的断言包括:

  1. 相等断言:比较实际结果和期望结果是否相等。

    • assert x == y: 判断x是否等于y。
    • assert x != y: 判断x是否不等于y。
    • assert x in y: 判断x是否在y中。
    • assert x not in y: 判断x是否不在y中。
  2. 真值断言:验证表达式的真假。

    • assert expression: 判断expression是否为真。
    • assert not expression: 判断expression是否为假。
  3. 异常断言:验证代码是否抛出了特定类型的异常。

    • with pytest.raises(ExpectedException):: 判断执行代码块是否抛出了指定类型的异常。
  4. 容器断言:验证集合、列表等容器中的元素。

    • assert len(container) == expected_length: 判断容器的长度是否等于期望长度。
    • assert item in container: 判断元素是否在容器中。
    • assert item not in container: 判断元素是否不在容器中。
  5. 浮点数断言:用于比较浮点数。

    • assert math.isclose(a, b, rel_tol=1e-9): 判断a和b是否在相对误差范围内近似相等。
  6. 字符串断言:验证字符串相关的操作。

    • assert string.startswith(prefix): 判断字符串是否以指定前缀开头。
    • assert string.endswith(suffix): 判断字符串是否以指定后缀结尾。
    • assert substring in string: 判断子字符串是否在字符串中。

断言可以在测试用例中的任何地方使用,通常在测试逻辑中执行操作后使用断言来验证预期结果。通过合理使用断言,可以确保测试的准确性和可靠性,帮助开发人员快速定位问题所在。断言涵盖了测试过程中的各个层面,包括功能性、数据一致性、异常处理等,是编写有效测试用例不可或缺的一部分。

unittest框架的断言

在 Python 的 unittest 框架中,有许多内置的断言方法可以用于编写测试用例。以下是其中一些常用的断言方法:

  1. 相等断言:

    • assertEqual(a, b): 判断 a 是否等于 b。
    • assertNotEqual(a, b): 判断 a 是否不等于 b。
  2. 真值断言:

    • assertTrue(x): 判断 x 是否为 True。
    • assertFalse(x): 判断 x 是否为 False。
  3. 包含断言:

    • assertIn(a, b): 判断 a 是否在 b 中。
    • assertNotIn(a, b): 判断 a 是否不在 b 中。
  4. 大小关系断言:

    • assertLess(a, b): 判断 a 是否小于 b。
    • assertLessEqual(a, b): 判断 a 是否小于等于 b。
    • assertGreater(a, b): 判断 a 是否大于 b。
    • assertGreaterEqual(a, b): 判断 a 是否大于等于 b。
  5. 引发异常断言:

    • assertRaises(exc, fun, *args, **kwargs): 判断调用函数 fun(*args, **kwargs) 是否会引发异常 exc。
  6. 对象身份断言:

    • assertIs(a, b): 判断 a 和 b 是否是同一个对象。
    • assertIsNot(a, b): 判断 a 和 b 是否不是同一个对象。

这些断言方法覆盖了常见的测试场景,能够满足大部分单元测试的需求。通过合理使用这些断言方法,可以编写出清晰、准确的测试用例,并对被测试的代码进行全面的验证。

最终
(测试计划+功能测试+#性能测试#+安全测试+兼容性测试+用户体验测试+#自动化测试#+#测试报告#)
#软件测试报告#/#测试用例#/#手机端测试   测试方案  测试计划 

#appium/#selenium/

#po模式/#jenkins/#jmeter/#postman/#fiddler/#eclipse/#java+selenium/#uft/#qtp/#禅道/#java/#python/#tpshop/#ecshop/#图书管理系统测试/#电商管理系统测试/

#任意系统均可

注:       

        均会先对着文档要求先进行演示  。

        软件测试一对一培训、自动化测试(页面ui自动化+接口自动化+手机端自动化)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注软件测试报告的摄影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值