一文搞定接口自动化测试框架搭建orPytest_知识点总结

news2024/11/25 15:33:46

pytest编写的规则:
1、测试文件以test_开头(以_test结尾也可以)
2、测试类以Test开头,并且不能带有__init__方法
3、测试函数以test_开头
4、断言必须使用assert

pytest.main(['-s','-v']) :用来执行测试用例
-s 打印print语句到控制台
-v 显示测试方法执行的详情
-m 标签名:测试分组的执行

fixture方法详解:类似unittest中的setup和teardown功能。
@pytest.fixtrue(scope="function",params=None,autouse=False,ids=None,name=None)
scope: 作用范围,设置范围后,会根据设置的范围去触发执行。
可选范围如下:
function:每个方法(函数)都会执行一次。(默认)
class:每个类都会执行一次。类中有多个方法调用,只在第一个方法调用时执行
module:一个.py文件执行一次。一个.py文件可能包含多个类和方法
package/session:多个文件调用一次,可以跨.py文件

params:传入参数,接收一个列表,列表中每个数据都作为用例的输入
autouse:在一个session内所有的test都会自动调用当前的fixture,默认为false
ids:测试字符串id的列表,每个测试字符串id对应于params,默认为参数值
name:fixture的名称,默认为装饰函数的名称

conftest.py 配置里可以实现数据共享,不需要 import 就能自动找到fixture
使用conftest.py规则要求:
1、该文件所在目录必须存在__init__.py文件
2、该文件不能被其他文件导入,会自动被调用
3、所有同目录测试文件运行前都会执行该文件
4、该文件名字是固定的,不可以做任何修改

mark用法: 测试用例分组执行
设置步骤如下:
1、注册标签名,通过在项目根目录下新建pytest.ini配置文件注册;
[pytest]
markers =
smoke_test:冒烟测试
system_test:系统测试
login_test:登录模块
2、在测试用例的前面加上:
@pytest.mark.smoke_test
3、运行时,根据用例标签过滤(-m 标签名)
pytest.main(['-s','-v','-m smoke_test']) # 只执行smoke_test分组下的用例
pytest.main(['-s','-v','-m system_test or login_module']) # 两个标签的用例都执行
pytest.main(['-s','-v','-m system_test and login_module']) # 包含两个标签的用例才执行
pytest.main(['-s','-v','-m not login_module']) # 除了该标签之外,其他用例都执行

pytest中测试用例的执行顺序
pytest测试用例的执行顺序按照编写顺序执行
利用pytest-ordering插件,通过装饰器@pytest.mark.run(order=1)来进行控制,数字越小,越前执行

 自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

skip(): 测试用例跳过的设置
使用@pytest.mark.skip(self,reason=None):在要跳过的测试用例前加入该标签,并可以选择传入一个非必须参数reason表示原因
使用@pytest.mark.skipif(self,condition,reason=None):在要跳过的测试用例前加入该标签,根据condition条件判断是否进行跳过
使用skip()方法:在测试方法中调用pytest.skip()方法来实现跳过
使用pytestmark=pytest.mark.skip()方法:可以跳过整个模块,注意pytestmark为关键字,必须用此名称

parametrize:做参数化
使用@pytest.mark.parametrize()做参数化
1、传一个参数 @pytest.mark.parametrize('参数名',list) 进行参数化
2、传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化

 总结:

  从软件测试到测试开发全套视频+文档+项目+简历模板+面试宝典资料包

需要的小伙伴可以点击小编主页

,验证消息填写000即可获取喔

 一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九, 银行业务测试

十,大数据测试和业务分析

 

 十一:项目实战

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

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

相关文章

使用matlab制作声音采样率转换、播放以及显示的界面

利用matlab做一个声音采样率转换、播放以及显示的界面 大抵流程: 图形界面创建:使用figure函数创建名为“声音采样率转换”的图形界面,并设置了其位置和大小。 按钮和文本框:使用uicontrol函数创建了选择音频文件的按钮、显示当前…

JavaScript_表单校验用户名和密码

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><style>*{margin: 0px;padding: 0px;box-sizing: border-box;}body{background: url("img/register_bg.png") …

计算机视觉基础(7)——相机基础

前言 从这一节开始&#xff0c;我们来学习几何视觉。中层视觉包括相机模型、单目几何视觉、对极几何视觉和多目立体视觉等。在学习几何视觉最开始&#xff0c;我们先来学习一下相机模型&#xff0c;了解相机的基本原理&#xff0c;了解相机如何记录影像。 一、数字相机 1.1 基…

SpringCloud微服务:Ribbon负载均衡

目录 负载均衡策略&#xff1a; 负载均衡的两种方式&#xff1a; 饥饿加载 1. Ribbon负载均衡规则 规则接口是IRule 默认实现是ZoneAvoidanceRule&#xff0c;根据zone选择服务列表&#xff0c;然后轮询 2&#xff0e;负载均衡自定义方式 代码方式:配置灵活&#xff0c;但修…

SpringBoot整合WebSocket实现订阅消息推送

目录 一、什么是WebSocket1.HTTP协议2.WebSocket协议 二、WebSocket使用场景1.消息推送2.实时聊天3.弹幕4.实时数据更新 三、SpringBoot整合WebSocket&#xff08;以实现消息推送为例&#xff09;1.添加依赖2.创建消息类2.WebSocket配置类3.工具类4.测试连接5.服务调用 一、什么…

JAVA基础9:Debug

1.Debug概述 Debug:是供程序员使用的程序调试工具&#xff0c;它可以用于查看程序的执行流程&#xff0c;也可以用于追踪程序执行过程来调试程序。 2.Debug操作流程 Debug调试&#xff0c;又被称为断点调试&#xff0c;断点其实是一个标记&#xff0c;告诉我们从哪里开始查看…

自动化接口差异测试-diffy 回归测试 charles rewrite 请求

1、前言 大家好&#xff0c;今天小编向大家介绍一款自动化接口diff平台–diffy。diffy是twitter的开源项目&#xff0c;通过同时运行新/老代码&#xff0c;对比运行结果&#xff0c;发现潜在bug。diffy的原理是作为代理&#xff0c;截取请求并发送至所有运行的服务实例&#x…

【thop.profile】thop.profile计算网络参数量和计算效率

&#x1f34b;&#x1f34b;1.安装thop 安装thop有两种方式。 &#x1f3c6;第一种 pip install thop &#x1f3c6;第二种 用源码编译安装 从官网下载【github】thop安装压缩包下载压缩文件&#xff0c;解压到虚拟环境的site-packages文件下激活进入自己的虚拟环境cd到压缩…

Django实战项目-学习任务系统-任务完成率统计

接着上期代码内容&#xff0c;继续完善优化系统功能。 本次增加任务完成率统计功能&#xff0c;为更好的了解哪些任务完成率高&#xff0c;哪些任务完成率低。 该功能完成后&#xff0c;学习任务系统1.0版本就基本完成了。 1&#xff0c;编辑urls配置文件&#xff1a; ./mysi…

在windows上利用vmware17 搭建centos7 mini版本服务器

安装centos7mini 修改名称和安装路径 也可以点击自定义硬件&#xff0c;进行硬件配置修改 设置内存 设置处理器 点击下图按钮进行设置 点击done 点击开始安装 点击设置root密码 设置成功&#xff0c;点击done &#xff0c;root密码设置的简单的话需要按两次done 等待安装完成…

前端算法面试之堆排序-每日一练

如果对前端八股文感兴趣&#xff0c;可以留意公重号&#xff1a;码农补给站&#xff0c;总有你要的干货。 今天分享一个非常热门的算法--堆排序。堆的运用非常的广泛&#xff0c;例如&#xff0c;Python中的heapq模块提供了堆排序算法&#xff0c;可以用于实现优先队列&#xf…

微服务nacos实战入门

注册中心 在微服务架构中&#xff0c;注册中心是最核心的基础服务之一 主要涉及到三大角色&#xff1a; 服务提供者 ---生产者 服务消费者 服务发现与注册 它们之间的关系大致如下&#xff1a; 1.各个微服务在启动时&#xff0c;将自己的网络地址等信息注册到注册中心&#x…

四、Ribbon负载均衡

目录 一、负载均衡流程 1、我通过浏览器直接访问userservice/user/1&#xff0c;无法访问&#xff0c;说明是负载均衡做了相应的处理 2、我们来看一下代码中负载均衡的流程是怎样的 3、图像流程 二、负载均衡策略 1、修改负载均衡策略 &#xff08;方式一&#xff09; &a…

D. Jumping on Walls bfs

Problem - 199D - Codeforces 题目大意&#xff1a;有一个两个垂直的平行墙壁组成的一个峡谷。一个人初始是在左边墙壁第一层。在每个墙壁上有些障碍点&#xff0c;用X表示&#xff0c;这些障碍点不能被到达。&#xff0c;他可以执行以下三个操作&#xff1a; 向当前墙壁往上…

【ASP.NET】Hello World

文章目录 1. 几个概念2. 搭建开发环境2.1 .NET SDK2.2 IDE & Editor 3 First Project3.1 步骤3.2 模板3.3 项目结构3.4 请求的处理流程 Reference Link 1. 几个概念 .NET 是一个平台&#xff0c;包括 .NET Framework、.NET Core、ASP.NET、C#等&#xff0c;可以构建桌面、W…

文心一言 VS 讯飞星火 VS chatgpt (135)-- 算法导论11.3 1题

一、用go语言&#xff0c;假设我们希望查找一个长度为 n 的链表&#xff0c;其中每一个元素都包含一个关键字k并具有散列值h(k)。每一个关键字都是长字符串。那么在表中查找具有给定关键字的元素时&#xff0c;如何利用各元素的散列值呢? 文心一言&#xff1a; 在Go语言中&a…

若依前后分离版框架下Springboot java引入Mqtt接受发送消息

**这只是其中一种而且是粗浅的接、发消息。 同步机制还要跟搞物联网的同事沟通确认去看看能不能实现 或者是设备比较多的情况下 不会去使用同步机制 首先pom文件 引入依赖 ** <dependency><groupId>org.eclipse.paho</groupId><artifactId>org.eclipse…

spring cloud微服务中多线程下,子线程通过feign调用其它服务,请求头token等丢失

在线程池中&#xff0c;子线程调用其他服务&#xff0c;请求头丢失&#xff0c;token为空的情况 看了很多篇文章的处理方法和在自己亲测的情况下做出说明&#xff1a; 第一种&#xff1a; 这种方式只支持在主线程情况下&#xff0c;能够处理&#xff0c;在多线程情况下&#…

基于Python实现汽车销售数据可视化【500010086】

导入模块 import numpy as np import pandas as pd import plotly.graph_objects as go import plotly.express as px获取数据 df1 pd.read_excel(r"./data/中国汽车总体销量.xlsx") print(df1.head(5))df1.info()df1[年份] df1[时间].dt.year df1[月份] df1[时…

【论文阅读】GAIN: Missing Data Imputation using Generative Adversarial Nets

论文地址&#xff1a;[1806.02920] GAIN: Missing Data Imputation using Generative Adversarial Nets (arxiv.org)