从0到1精通自动化测试,pytest自动化测试框架,环境准备与入门(一)

news2024/11/25 12:59:15

目录

一、前言

二、pytest简介

三、安装pytest

四、快速开始

五、写个测试类

六、pytest用例规则


一、前言

先说下为什么要学pytest,在此之前相信大伙已经掌握了python里面的单元测试单元测试框架,那再学一个框架肯定是需要学习时间的

刚开始我原生是拒绝的,想着用unittest也能完成自动化,为什么要去学pytest呢?

最近看到越来越多的测试在用Pytest了,而Pytest也比Unittest强大很多,也有小伙伴出去面试Unittest被框架鄙视的。所以这个框架应该有下面2个理由

第一条:Pytest应用场景很多,现在90%的企业公司都在使用,也可以装逼
第二条:学会了可以避免被面试官视鄙视

python鄙视链:pytest 鄙视 > unittest 鄙视 > robotframework 鄙视 > 记流水账鄙视 >《hello world》小白

二、pytest简介

pytest是python的一种单元测试框架,与python类似,比自带的unittest框架使用起来更方便,效率更高。根据官方网站的介绍,它具有以下特点:

1.非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
2.能够支持简单的单元测试和复杂的功能测试
3.支持参数化
4.执行测试过程中可以将某些测试跳过(skip),或者对某些预期失败的case标记成失败
5.支持重复执行(rerun)失败的case
6.支持运行由nose, unittest编写的测试case
7.可生成html报告
8.方便的和持续集成工具jenkins集成
9.可支持执行部分用例

 

10.具有很多第三方插件,并且可以自定义扩展

三、安装pytest

1.安装方法

pip install -U pytest

2.pip show pytest查看安装版本

pip show pytest

 

3.也可以pytest —version查看安装的版本

pytest —version
This is pytest version 3.6.3, imported from d:\soft\python3.6\lib\site-packages\
pytest.py

四、快速开始

1.新建一个test_sample.py文件,写以下代码

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

def test_answer():
    assert func(3)==5

2.打开test_sample.py所在的文件夹,cmd窗口输入:pytest(或者输入py.test也可以)

D:\MOMO>pytest
============================= test session starts =============================
platform win32 -- Python 3.6.0, pytest-3.6.3, py-1.5.4, pluggy-0.6.0
rootdir: D:\MOMO, inifile:
collected 1 item

test_sample.py F                                                         [100%]

================================== FAILURES ===================================
_________________________________ test_answer _________________________________

    def test_answer():
>       assert func(3)==5
E       assert 4 == 5
E        +  where 4 = func(3)

test_sample.py:6: AssertionError
========================== 1 failed in 0.19 seconds ===========================

3.pytest运行规则:查找当前目录及其子目录下以 test_*.py 或 *_test.py 文件,找到文件后,在文件中找到以 test 开头函数并执行

五、写个测试类

1.前面是写的一个test开头的测试函数,当用例用多个的时候,写函数就不太合适了,这时可以把多个测试用例,写到一个测试类里

# test_class.py
class TestClass:
    def test_one(self):
        x = "this"
        assert 'h' in x

    def test_two(self):
        x = "hello"
        assert hasattr(x, 'check')

2.打开cmd,cd到test_class.py的文件目录,如果只想运行这个文件,加上-q参数,-q参数用来指定执行的文件,不指定就执行该文件夹下所有的用例

py.test -q test_class.py
D:\MOMO>py.test -q test_class.py
.F                                                                       [100%]
================================== FAILURES ===================================
_____________________________ TestClass.test_two ______________________________

self = <test_class.TestClass object at 0x00000000039F1828>

    def test_two(self):
        x = "hello"
>       assert hasattr(x, 'check')
E       AssertionError: assert False
E        +  where False = hasattr('hello', 'check')

test_class.py:11: AssertionError
1 failed, 1 passed in 0.04 seconds

六、pytest用例规则

测试文件以 test_开头(以_test结尾也可以)
测试类以 Test开头,并且不能带有 init 方法
测试函数以 test_开头
断言使用 assert


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战

五、一线大厂简历


六、测试开发DevOps体系

七、常用自动化测试工具


八、JMeter性能测试

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!

资料获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片进群领取。【软件测试交流资料分享】:320231853(备注C)icon-default.png?t=N5F7http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=FyTMu2059Vq_V0L7OA7ULNlwMavqPwuj&authKey=OZzhp3vnhQb5XZdACACYWtcHiMzW5hxqMY1zOb9gx8d3sCV7ZowfgSEzH5Tvcrux&noverify=0&group_code=320231853

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/663050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

019: vue中使用fetch读取本地txt文件

第019个 查看专栏目录: VUE — element UI 在做卫星项目的时候&#xff0c;会将两行根数放在txt文件中&#xff0c;放在public的文件夹中&#xff0c; 如何读取呢&#xff1f; 可以用以下方法&#xff1a; 方法1 loadFile(name) { const xhr new XMLHttpRequest() const okS…

【人工智能】— 无监督学习、K-means聚类(K-means clustering)、K-means损失函数,目标函数

【人工智能】— 无监督学习、K-means聚类&#xff08;K-means clustering&#xff09;、K-means损失函数&#xff0c;目标函数 无监督学习聚类&#xff08;Clustering&#xff09;K-means聚类&#xff08;K-means clustering&#xff09;K-means损失函数目标函数策略&#xff1…

pikachu靶场-url重定向

打开测试界面 不安全的URL跳转 发现有四条超链接&#xff0c;依次打开都会进行内容跳转 当我们点击最下面的一个超链接&#xff0c;可以看到url变成了这样 我们对urli进行参数修改 设置payload为 http://ip:port/vul/urlredirect/urlredirect.php?urlhttp://www.baidu.com输…

Unity的IL2CPP

​ 目录 背景 概念 AOT编译器 运行时库 对比 Mono IL2CPP IL2CPP打包注意事项 类型裁剪 泛型实例 泛型方法 背景 在Unity4.6.1 p5以后版本中&#xff0c;在PlayerSettings—>Other Settings—>Scripting Backend有mono和il2cpp两个选项&#xff0c;它们是Un…

面试阿里,嫌弃面试官装逼当场怒怼,“把我的简历还给我”,疑似被拉黑

好家伙&#xff0c;这奇葩事可真是多&#xff0c;前两天和粉丝聊天&#xff0c;他说前段时间面试阿里的测试岗&#xff0c;最后和面试官干起来了。 我问他为什么&#xff0c;他说没啥&#xff0c;就觉得面试官太装B了&#xff0c;就爱问一些虚而不实的东西&#xff0c;显得自己…

Web自动化中常用的跳过验证码操作

目录 前言 通过cookies值登录 通OCR识别验证码 总结 前言 自动化测试中经常需要避免手动输入验证码的操作&#xff0c;因为这会增加测试成本&#xff0c;耗费测试人员的时间。通过自动化程序跳过验证码&#xff0c;可以减少测试时间&#xff0c;提高测试效率。 安静今天通过几个…

增值税高企业发展受限怎么办?采用此方法可化险为夷!

增值税高企业发展受限怎么办&#xff1f;采用此方法可化险为夷&#xff01; 《税筹顾问》专注于园区招商&#xff0c;您的贴身节税小能手&#xff0c;合理合规节税 企业的发展&#xff0c;一方面需要依靠自身的生产经营&#xff0c;那么另一方面就需要在一些支出上尽可能的开源…

如何用 Python 给树莓派 Pico RP2040 编程

使用 MicroPython&#xff0c;仅用 8 行代码&#xff0c;我们就可以实现 LED 闪烁程序。 下载安装 Python IDE&#xff1a;Thonny Thonny 是 一个面向初学者的 Python IDE 环境&#xff0c;自带 Python&#xff0c;相对简单&#xff0c;比较容易上手。对于树莓派 Pico 开发&am…

实验篇(7.2) 12. 站对站安全隧道 - 仅一方发起连接(FortiGate-IPsec) ❀ 远程访问

【简介】上一篇实验发现&#xff0c;两端都是可以远程的公网IP的话&#xff0c;两端防火墙都可以发出连接请求&#xff0c;并且都能够连通。这样的好处是安全隧道不用随时在线&#xff0c;只在有需求时才由发起方进行连接。但是现实中很多情况下只有一端公网IP可以远程&#xf…

实战:求年月日时间前后遇到的坑和解决方式

这里写目录标题 前言正确实例&#xff1a;错误实例&#xff1a; 需求 前言 这周接到一个时间转换任务需要处理&#xff0c;本来没什么问题&#xff0c;后来完成后发现时间有偏差&#xff0c;又重写了一遍代码&#xff0c;感觉很有记录必要性&#xff0c;希望看过的小伙伴可以避…

代理ip会不会影响网络速度和稳定性

代理ip是一种可以帮助用户隐藏真实IP地址的技术&#xff0c;通常使用代理服务器作为中介来连接互联网。代理ip在网络安全、隐私保护、跨区域访问等方面都有广泛的应用。但是&#xff0c;使用 代理ip是否会影响网络速度和稳定性这一问题也一直备受关注。下面是一些有关代理ip对网…

k8s部署redis集群

写在前面 一般来说&#xff0c;REDIS部署有三种模式。 单实例模式&#xff0c;一般用于测试环境。哨兵模式集群模式 后两者用于生产部署 哨兵模式 在redis3.0以前&#xff0c;要实现集群一般是借助哨兵sentinel工具来监控master节点的状态。 如果master节点异常&#xff0c…

计算机网络管理-网络管理软件SNMPc软件的下载,安装和使用教程说明

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

树莓派4B移植5G模块驱动(RG200U-CN)

1、查看Linux内核版本 uname -r2、根据内核版本在Github上下载Linux内核源码&#xff08;最好再Github上确定一下有没有这个分支&#xff09; git clone --depth1 https://github.com/raspberrypi/linux --branch rpi-5.15.y3、下载依赖库 $ sudo apt update$ sudo apt inst…

【白话机器学习系列】白话 Dropout

白话 Dropout 文章目录 什么是Dropout理解缩放举个例子 什么是Dropout Dropout 是神经网络的一种正则化技术&#xff0c;它在训练时以指定的概率 p p p&#xff08;常见值为 p 0.5 p0.5 p0.5&#xff09;丢弃一个单元&#xff08;连同连接&#xff09;。在测试时&#xff…

【JUC并发编程】

本笔记内容为狂神说JUC并发编程部分 目录 一、什么是JUC 二、线程和进程 1、概述 2、并发、并行 3、线程有几个状态 4、wait/sleep 区别 三、Lock锁&#xff08;重点&#xff09; 四、生产者和消费者问题 五、八锁现象 六、集合类不安全 七、Callable ( 简单 )…

windows10企业版安装西门子博途V15---03安装仿真软件

1、选点这个 2、进入03.SIMATIC_PLCSIM_Advanced_V3&#xff0c;这个是什么东西&#xff0c;它就是真实的硬件设备的仿真软件&#xff0c;也就是说&#xff0c;现在没有真正的PLC硬件&#xff0c;PLC是这样的东西&#xff0c;它是一个硬件产品&#xff0c;而现在不可能去买个硬…

TRUNCATE 语句到底因何而慢?

作者通过源码分析 truncate 语句形成慢 SQL 的原因和解决方案&#xff0c;并与 MySQL 5.7就相关实现逻辑进行对比。 问题现象 收到反馈某测试环境执行批量操作时&#xff0c;有 truncate 语句存在于慢查询日志中。担心上线后可能影响数据库&#xff0c;请求 DBA 配合分析。 …

第八章 模型篇:transfer learning for computer vision

参考教程&#xff1a; transfer-learning transfer-learning tutorial 文章目录 transfer learning对卷积网络进行finetune把卷积网络作为特征提取器何时、如何进行fine tune 代码示例加载数据集构建模型fine-tune 模型模型作为feature extractor 定义train_loop和test_loop定…

【K8S系列】如何高效查看 k8s日志

序言 你只管努力&#xff0c;其他交给时间&#xff0c;时间会证明一切。 文章标记颜色说明&#xff1a; 黄色&#xff1a;重要标题红色&#xff1a;用来标记结论绿色&#xff1a;用来标记一级论点蓝色&#xff1a;用来标记二级论点 Kubernetes (k8s) 是一个容器编排平台&#x…