Pytest框架Fixture+Parametrize参数化应用篇

2024-03-25 23:48

本文主要是介绍Pytest框架Fixture+Parametrize参数化应用篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面三节概要的讲述了Pytest框架Fixture应用以及Parametrize参数化应用,今天也拿实例列举进行将2个方法综合使用

Python自动化测试 | Pytest之参数化

Pytest | 参数化处理三种类型 [ 列表、元组、字典]

Python自动化测试 | Pytest之fixture

就拿小编实际项目中的管理台登录界面测试作为案例,代码浅而易学,前半部分是Fixture,后半部分是Parametrize

# coding=utf-8
# authou:shichaoimport pytest
from selenium import webdriver
import os, time
# 以上为模块调用# 定义个入参的元组列表
test_user = [(2019060601, 123456), (2019060602, 234567), (2019060603, 345678)]
driver = webdriver.Chrome()
# 定义一个全局驱动@pytest.fixture(scope='module', autouse=True) #使用fix方法,类型为模块,默认自动执行
def test_pro_ulr():driver.maximize_window() #最大化浏览器url = 'https://xfdj.pagoda.com.cn' driver.get(url) # 访问管理台time.sleep(3) #显示等待3s# 用yield关键字呼唤teardown操作,关闭浏览器yieldtime.sleep(5)driver.quit()@pytest.mark.parametrize('user, passwd', test_user) #使用par 参数取名为user、passwd ;入参为上面定义的元组
def test_login_01(test_pro_ulr, user, passwd):time.sleep(1)driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/div[2]/div/div[1]/div').click()time.sleep(1)driver.find_element_by_name('username').send_keys(user)time.sleep(1) #入参:用户名driver.find_element_by_name('password').send_keys(passwd)time.sleep(1) # 入参:密码driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/div[2]/div/form/div[3]/input').click()time.sleep(1) # 点击登录text = driver.find_element_by_xpath('//*[@id="app"]/div/div[2]/div[2]/div/form/div[3]/input').textassert ('登录', text)  # 输入错误的账号密码,断言是否还在登录页面if __name__ == '__main__':pytest.mark('-s', 'test_param04.py')

看看执行代码后的效果,会依次将 test_user  三组测试用例带入登录页面执selenium执行driver模拟不同的登录用户名/密码进行多次登录,执行完毕

test_user = [(2019060601, 123456),(2019060604, 234567),(2019060603, 345678)
]

以上几个实例,就是我们测试中使用的pytest测试框架测试用例参数化,想登录这种前置/公共配置可以直接创建一个conftest.py文件进行存放,case就存放在用例集中

近期在学习pytest框架过程种, 会将每日一点小小的积累,总结,复习,分享,有好的学习资料大家可以进行分享

对于Pytest你们现在在实际项目中有应用吗?

这篇关于Pytest框架Fixture+Parametrize参数化应用篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846651

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关

SpringBoot3应用中集成和使用Spring Retry的实践记录

《SpringBoot3应用中集成和使用SpringRetry的实践记录》SpringRetry为SpringBoot3提供重试机制,支持注解和编程式两种方式,可配置重试策略与监听器,适用于临时性故... 目录1. 简介2. 环境准备3. 使用方式3.1 注解方式 基础使用自定义重试策略失败恢复机制注意事项

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.