自动化测试框架Pytest介绍(1)——Pytest安装和简单应用

目录

一、Pytest简介

二、pytest安装

2.1利用pip安装

2.2下载安装包安装

 三、简单示例


一、Pytest简介

        pytest是应用与python的自动化测试框架,跟unittest类似,但是比unittest功能更强大,在做接口自动化测试、app自动化测试、甚至系统功能自动化测试都可以利用pytest框架来实现对用例的调度,极大提高我们自动化测试的效率。

        PS:我们本来是在将app自动化测试的,但是我们的APP自动化测试会用python+appium+pytest+allure来实现。前面系列文章将appium应用的基础说得差不多了,所以中途插入对pytest的讲解。会将pytest做一个自动化测试最小功能知识集的讲解,让这些知识可以支撑我们对app自动化测试的实现。

二、pytest安装

2.1利用pip安装

在联网的环境,我们装了python后也已经装了pip,所以安装pytest直接用pip安装,非常简单。

pip install pytest

结果翻车了,报错误TimeoutError: The read operation timed out

自动化测试框架Pytest介绍(1)——Pytest安装和简单应用_第1张图片

超时了,我们换一个国内的源试试,有如下几个常用的国内源

(1)阿里云 http://mirrors.aliyun.com/pypi/simple/
(2)豆瓣http://pypi.douban.com/simple/
(3)清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
(4)中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/ 

我们用阿里云的,命令为在后面 -i 源地址 

pip install pytest -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

安装成功:

自动化测试框架Pytest介绍(1)——Pytest安装和简单应用_第2张图片

 注意要在后面加参数 --trusted-host mirrors.aliyun.com,否则会提示

WARNING: The repository located at mirrors.aliyun.com is not a trusted or secure host and is being ignored. If this repository is available via HTTPS we recommend you use HTTPS instead, otherwise you may silence this warning and allow it anyway with '--trusted-host mirrors.aliyun.com'.
ERROR: Could not find a version that satisfies the requirement pytest (from versions: none)
ERROR: No matching distribution found for pytest

我们执行pytest --version,成功返回pytest的版本,证明我们安装成功

C:\Users\86181>pytest --version
pytest 7.2.1

2.2下载安装包安装

如果无法联网,那也可以先到PypI下载一个pytest包,然后在本地用pip安装

如下图,在PyPI搜索Pytest,然后下载whl文件

自动化测试框架Pytest介绍(1)——Pytest安装和简单应用_第3张图片

whl文件也是pip安装文件,直接用pip安装本地文件

在命令行进入whl文件所在目录,执行如下命令

pip install pytest-7.2.1-py3-none-any.whl

 我们是刚刚用pip的国内镜像成功安装了,所以显示所有包都已经安装

自动化测试框架Pytest介绍(1)——Pytest安装和简单应用_第4张图片

 三、简单示例

我们简单运行一个没有任何意义的测试用例,试一下pytest,详细说明待后续文章

from BaseLog import logger
from testlog2 import LOGTEST
import pytest



def test_case1():
    #测试函数
    logger.info("我是testcase1")
    print("我是test_case1")


if __name__ =="__main__":
    # -s:显示用例中的输出
    # -v:输出更详细的用例执行信息
    # __file__:本文件
    pytest.main(["-s", "-v", __file__])

执行结果为

[Running] python -u "d:\Test\Android_Test\BASE\TestLog.py"
============================= test session starts =============================
platform win32 -- Python 3.10.9, pytest-7.2.1, pluggy-1.0.0 -- D:\Python310\python.exe
cachedir: .pytest_cache
rootdir: d:\Test\Android_Test
collecting ... collected 1 item

BASE/TestLog.py::test_case1 2023-02-21 23:32:03,486-TestLog.py-17-INFO: 我是testcase1
我是test_case1
PASSED

============================== 1 passed in 0.01s ==============================

[Done] exited with code=0 in 0.715 seconds

你可能感兴趣的:(pytest框架介绍,pytest,python)