pytest学习(1)学会使用pytest测试一个用例

本文介绍了如何使用pytest进行自动化测试,包括接口测试(requests)、Web测试(selenium)和App测试(appium)。通过结合allure生成漂亮的测试报告,并集成到jenkins中。此外,还展示了pytest的安装过程、编写测试用例和运行测试的基本步骤,以及如何处理测试失败的情况。文章还提供了在PyCharm中安装pytest的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想测web、app、接口等,pytest都可以满足我们,pytest可以兼容unittest!!!

接口:requests测试框架
web:selenium(瑟里扭)测试框架
app:appium测试框架(爱piu) ui层面的自动化测试
形成漂亮的测试报告:用pytest结合allure(额落得)集成到jenkins(杰肯死)中
自己开发插件,pytest提供函数,然后用来开发一系列插件,可以选择上传到github上。

一、安装

1.代码安装:
首先我们需要python环境,最好是python3.6以上版本,自带pip工具。
cmd进入python的环境下,忘记自己配置在哪里可以去环境变量里面看。
(.\Programs\Python\Python39-32\Scripts)一般在Scripts文件夹
接着输入代码,等待成功即可。

pip install pytest

2.代码安装:
PyCharm里面安装。
File–settings–project:–python interpreter,点击+号,搜索pytest,点击安装包裹,等待安装完成。
在这里插入图片描述

二、第一个测试用例代码

#content of test_sample.py
def inc(x):
    return x+1

def test_answer():
    assert inc(3)==5 #断定4是否等于5

很明显3+1=4不等于5,所以这个用例会出错,下面我们看看如果使用pytest测试。

最简单的方法测试:
在cmd里切到我们写的测试用例test_sample.py文件的目录下。
(D:\Python-workspace\code\study_pytest)输入pytest,然后回车即可

为了查看这个目录下是否存在test_sample.py文件,我们输入命令dir(linux系统用ls查看)
在这里插入图片描述

文件在这个目录下,我们直接输入pytest,然后回车,得到结果:
在这里插入图片描述

检验测试用例,发现提示assertionerror断言失败了,说明尖括号这一行错了

当我将代码改成在这里插入图片描述

结果是正确的,绿色的。
在这里插入图片描述

以上就是第一次尝试使用pytest自动测试用例。

<think>好的,我需要回答用户关于如何使用pytest单独执行特定测试的问题。首先,我得回忆一下pytest的相关知识,结合用户提供的引用内容,整理出几种常见的方法。 用户提到了几个引用,其中引用[1]提到可以通过指定测试类和测试方法来执行单个用pytest path/to/test_class.py::TestClass::test_functionality。这是最基本的方法,应该放在前面。 然后引用[3]提到使用标记(mark)来执行特定用,用@pytest.mark装饰器标记测试,然后通过pytest -m标记名来运行。这也是一种常用方法,需要详细说明。 引用[5]提到--lf选项可以重新运行上次失败的用,这个虽然用户没直接问,但可能相关,可以作为补充方法。 另外,引用[4]中的pytest.main()方法允许在Python脚本中指定运行的用,这对需要在代码中控制的情况有用,应该包含进去。 引用[2]涉及通过配置文件执行用,但用户的问题更偏向命令行直接执行,可能作为次要方法提及,但根据用户的具体需求,yml配置可能不是最直接的答案,所以可能简要带过。 需要确保覆盖用户提到的所有相关引用中的有效方法,并按照常用程度排序。同时,注意按照用户的系统级指令,正确使用LaTeX格式,但这个问题可能不涉及数学公式,所以可能不需要。另外,生成相关问题时要围绕pytest测试执行方法展开。 最后,结构要清晰,分点说明每种方法,并给出示代码,确保用户能一步步操作。还要检查是否有遗漏的方法,比如节点ID选择、目录选择等,但根据引用内容,可能已经覆盖了主要方法。需要确认引用中的信息是否全面,是否需要补充其他常见方式,比如-k选项模糊匹配,但用户提供的引用中没有提到,可能不在此次回答范围内,但根据知识库,如果有必要可以添加,但需根据提供的引用内容优先。</think>要使用pytest单独运行特定的测试,可以通过以下5种方法实现: ### 1. 指定完整测试路径(节点ID) 通过`文件路径::类名::方法名`的格式直接定位测试: ```bash pytest test_module.py::TestClass::test_functionality ``` 此方法适用于精确控制执行范围,支持跨模块/类定位用[^1]。 ### 2. 使用标记选择器(-m) (1)在测试前添加标记装饰器: ```python @pytest.mark.smoke def test_login(): assert login() == True ``` (2)通过标记名称执行: ```bash pytest -m smoke ``` 支持逻辑表达式:`-m "smoke and not slow"`[^3] ### 3. 动态选择失败用(--lf) 重上次失败的用: ```bash pytest --lf ``` 结合`--new-first`可优先执行新失败用[^5] ### 4. 配置文件驱动执行 (1)创建`pytest.yml`配置文件: ```yaml run_script: - test_login - test_checkout ``` (2)通过自定义插件解析配置执行指定用[^2] ### 5. 代码内控制执行 在Python脚本中通过`pytest.main()`控制: ```python if __name__ == '__main__': pytest.main(['test_checkout.py::test_payment', '-v']) ``` 支持参数化配置,常用于持续集成场景[^4]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值