自动化测试-python+requests+unittest框架

对于接口的自动化测试而言,仅仅有requests库是肯定不够的,毕竟仅使用requests是一种面向过程的编程,如需扩展相关功能的话,还是需要走面向对象的路才可以,本文分享使用unittest框架来辅助requests完成自动化测试并增加断言。

*本文主讲unittest框架使用,相当于requests的进阶版,如果想了解requests请点击下方链接查看我的另一篇文章↓使用python发送Http请求(requests)https://blog.csdn.net/Liu_GuoXing/article/details/127507843?spm=1001.2014.3001.5501


UnitTest优势:

  • 方便管理、维护测试用例
  • 提供了丰富的断言方法
  • 支持生成测试报告

UnitTest语法框架(必须写在一个新的py文件中,不允许在现有文件修改 ):

import unittest
import requests


# 导包

class TestDemo(unittest.TestCase):
    # 开头必须大写,且需要继承unittest.TestCase
    my_session = None

    # 定义类属性

    def setUp(self) -> None:
        # 方法级别Fixture,最先执行的部分
        self.verify_url = 'xxx'
        self.login_url = 'xxx'
        self.headers = 'xxx'
        # 初始化多个测试用例公用的值

    def tearDown(self) -> None:
        # 方法级别Fixture,最后执行的部分
        pass
        # 用不上teardown的情况下可以不用

    @classmethod
    # 类装饰器
    def setUpClass(cls) -> None:
        # 类级别Fixture,最先执行的部分
        cls.my_session = requests.session()

    @classmethod
    # 类装饰器
    def tearDownClass(cls) -> None:
        # 级别Fixture,最后执行的部分
        cls.my_session.close()

    def test01_login_ok(self):
        # 普通方法
        # 登陆成功用例
        # 测试用例-必须以test开头,01、02、03决定了执行的先后顺序
        resp1 = self.my_session.get(url=self.verify_url)
        self.assertEqual(200, resp1.status_code)
        # 断言:响应状态码为200
        self.assertIn(1, resp1.json().get('status'))
        # 断言:’status‘的值包含1

    def test02_username_not_exits(self):
        # 普通方法
        # 账号不存在
        resp2 = self.my_session.post(url=self.login_url, data='xxxx', headers=self.headers)
        self.assertEqual(200, resp2.status_code)
        # 断言:响应状态码为200
        self.assertIn(1, resp2.json().get('status'))
        # 断言:’status‘的值包含1

    def test03_pwd_error(self):
        # 普通方法
        # 密码错误
        resp3 = self.my_session.post(url=self.login_url, data='xxxx', headers=self.headers)
        self.assertEqual(200, resp3.status_code)
        # 断言:响应状态码为200
        self.assertIn(1, resp3.json().get('status'))
        # 断言:’status‘的值包含1

执行顺序:类级setup-方法级setup-用例1-方法级teardown-方法级setup-用例2-方法级teardown方法级setup-用例3-方法级teardown-类级teardown(必须在类定义之前运行

断言主要方法:

assertEqual(参1,参2)

参数1:预期结果

参数2:实际结果

判断两个参数是否相等,如果相等则无任何提示,如果不相等则报错

assertIn(参1,参2)

参数1:预期结果

参数2:实际结果

判断实际结果中是否包含预期结果,若包含则断言通过无提示,若不包含则报错

实现过程:

  1. 准备UnitTest框架(setUp、tearDown、setUpClass、tearDownClass)
  2. 将使用requests框架请求的接口代码放入test开头的普通方法中
  3. 将所有导包类信息放至文件起始位置
  4. 将cls.my_session = requests.session()放至setUpClass中
  5. 将cls.my_session.close()放至tearDownClass(cls)中
  6. 添加类属性my_session = None
  7. 修改普通方法中requests.get/post为self.my_session.post/get('xxxx')
  8. 将普通方法中公共的部分如URL、HEADERS放入setUp中
  9. 修改普通方法中原本的URL和HEADERS,替换为setUp中的变量
  10. 在类的最上方右键-运行

关注我,不迷路

******我的本文相关专栏******

软件测试 & 开发(单击此处进入)


 ******我的其它作品专栏******

PC常见故障汇总专栏(点击进入)

EXCEL综合场景应用详解(点击此处进入)

全国计算机等级考试-二级python基础(点击此处进入)

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
### 回答1: Python的unittest库提供了一种基于单元测试测试框架,是一个方便易用的Python测试框架。使用unittest库进行接口自动化测试可以提高测试效率和质量,本文将分享如何使用Python unittest库搭建接口自动化测试框架。 第一步:安装Python unittest库 首先需要安装Python unittest库,Python unittest库是默认安装在Python中的,无需单独安装。 第二步:安装requests模块 接口自动化测试需要使用requests模块来发送HTTP请求、获取响应等操作,因此需要安装requests模块。使用pip安装requests命令如下: pip install requests 第三步:编写测试用例 使用unittest框架编写测试用例,首先需要导入unittest库并创建测试类,编写测试方法,方法名必须以test开头,并使用assert断言方法进行验证。例如: import unittest import requests class TestApi(unittest.TestCase): def test_get_users(self): url = 'http://localhost:8080/api/users' res = requests.get(url) self.assertEqual(res.status_code, 200) self.assertIsNotNone(res.json()) 第四步:执行测试用例 使用unittest框架执行测试用例,使用unittest.main()方法运行所有测试用例。例如: if __name__ == '__main__': unittest.main() 执行测试用例后,将输出测试结果,包括测试用例总数、成功数、失败数等。 第五步:持续集成 持续集成可以帮助实现自动化测试,可以将上述步骤集成到自动化测试框架中,提高测试效率和质量。使用持续集成工具,例如Jenkins,可以实现自动化测试的调度和执行,定期输出测试报告,是测试自动化化的不二选择。 在以上步骤中,请求地址和验证方法需要根据具体需求进行更改,但是编写测试用例的方法是类似的,熟练掌握unittest库可以快速搭建接口自动化测试框架,提高测试效率和质量。 ### 回答2: Python unittest requests 接口自动化测试框架搭建教程博客是指一篇博客文章,介绍如何使用Python unittestrequests库搭建接口自动化测试框架。该教程博客有如下几个方面: 1. 简单介绍Python unittestrequests库,以及它们在接口自动化测试中的使用; 2. 详细讲解如何安装Python unittestrequests库,并编写测试用例; 3. 讲解如何通过使用Python unittest的setUp()和tearDown()方法,在测试用例执行前后进行一些操作,以便更好地进行测试; 4. 介绍如何运行测试用例,并查看测试结果,以及如何进行测试报告生成; 5. 提供一些实例,展示如何使用Python unittestrequests库搭建接口自动化测试框架。 通过这篇教程博客,读者可以学习如何使用Python unittestrequests库搭建接口自动化测试框架,并且能够快速了解并掌握这种接口自动化测试方法的流程和基本方法。此外,该教程博客也提供一些实例,帮助读者更好地理解和应用这种方法。因此,这篇教程博客对于想要学习接口自动化测试以及深入了解Python unittestrequests库的读者来说,是一篇非常有价值的文章。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@Liu_GuoXing

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

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

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

打赏作者

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

抵扣说明:

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

余额充值