如何使用Pytest进行自动化测试?

Pytest作为广泛使用的Python测试框架之一,可以用于单元测试、功能测试、性能测试等场合。自动化测试是功能测试的一种形式,可以使用Pytest编写并管理自动化测试用例,再执行相应的自动化测试。

功能测试通常包括接口测试和Web测试两种类型,任何一个测试类型都可以通过Pytest框架来实现。本文以接口测试为例,讲解如何使用Pytest进行自动化测试。

如果想要进行Web自动化测试,只需要将代码中涉及接口测试API改为适用于Web自动化测试的API即可,而整体框架与执行方式则基本一致。

1. 编写测试用例
1)编写简单的测试用例

假设我们想要测试百度首页API接口,用户发出的请求是否合法,并检查响应文本是否包含字符串、“百度一下”。

代码实例:

import requests


def test_baidu():


# 发送API请求


response = requests.get('https://www.baidu.com')


# 判断响应状态码及响应文本是否符合预期结果。


assert response.status_code == 200


assert "百度一下" in response.text

上述代码中定义了`test_baidu()`作为测试函数名,它是一个基本测试用例。在这个示例用例中,代码会向API发送GET请求,并断言响应的状态码为200,且响应文本中包含“百度一下”这几个关键字。

2)编写参数化测试用例

在实际测试中通常需要对多组数据进行测试。这时参数化测试用例就派上用场了。它可以轻松地对多组数据进行测试,避免手动重复编写测试用例。

代码实例:


import requests


import pytest


# 声明数据


data = [


{'url': 'https://www.baidu.com', 'expected': '百度一下'},


{'url': 'https://cn.bing.com/', 'expected': 'bing'}


]


@pytest.mark.parametrize('case', data)


def test_web(case):


url = case['url']


expected = case['expected']


# 发送API请求,并断言响应的状态码为200,并检查响应文本是否符合预期结果


response = requests.get(url)


assert response.status_code == 200


assert expected in response.text

上述代码中使用`pytest.mark.parametrize`来实现参数化。其中,“case”是参数名称。“data”列表内包含了多组测试数据。通过for循环遍历每一组测试数据,并参考预置的策略执行具体的测试任务。

2. 运行测试用例

用例编写完成后,一定要进行自测,保证测试用例测试结果的准确性和一致性,测试用例本身没有问题,方可接入自动化测试。

Pytest来执行测试用例非常简单,只需要在命令行中输入`pytest`即可

3. 查看测试结果

所有测试用例执行完成后,pytest会给出测试结果,若用例都执行通过,测试结果会显示如下信息:

若有测试用例未能通过,执行结果会给出失败消息和失败原因,测试人员需要根据测试结果,找到执行失败的测试用例,并对其进行分析,判断是测试用例本身的问题,还是发现了程序的bug。

使用pytest做自动化测试,编写测试用例,需要遵循最佳的代码规范,并且考虑到各种边界情况和异常情况。同时,善于使用参数化和其他高级功能,提高自动化测试的可靠性、可维护性,保证自动化测试的顺畅执行。

最后作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些软件测试的学习资源,希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值