当前位置: 首页 > news >正文

pytest的前置与后置

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
import time
#登录成功用例
class TestCase:def setup_method(self):   #此处为前置,setup和teardown用的少一般用fixture做前置后置self.driver = webdriver.Chrome()self.wait = WebDriverWait(self.driver, 10)self.driver.get("http://novel.hctestedu.com/user/login.html")def teardown_method(self):#后置time.sleep(3)self.driver.quit()def test_login_success(self):self.driver.find_element(By.ID, "txtUName").send_keys("13587545934")self.driver.find_element(By.ID, "txtPassword").send_keys("q20050821")# 判断是否改变地址login_url = self.driver.current_urlself.driver.find_element(By.ID, "btnLogin").click()time.sleep(2)sjmsg = self.wait.until(ec.url_changes(login_url))assert sjmsg== True , 'Login fail'#密码失败:def test_loginFail(self):self.driver.find_element(By.ID, "txtUName").send_keys("13587545934")self.driver.find_element(By.ID, "txtPassword").send_keys("20050821")# 判断是否改变地址login_url = self.driver.current_urlself.driver.find_element(By.ID, "btnLogin").click()time.sleep(2)sjmsg = self.wait.until(ec.url_changes(login_url))assert sjmsg == True , 'Login fail'
#账号失败:def test_loginname(self):self.driver.find_element(By.ID, "txtUName").send_keys("113587545934")self.driver.find_element(By.ID, "txtPassword").send_keys("q20050821")# 判断是否改变地址login_url = self.driver.current_urlself.driver.find_element(By.ID, "btnLogin").click()sjmsg = self.wait.until(ec.url_changes(login_url))assert sjmsg == True , 'Login fail'
if __name__ =="__main__":pytest.main(["-sv",'case_test.py'])#module就是模块级别的函数条件,等于一个py文件

参数化

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
import time
#参数化@pytest.mark.parametrize
class TestCase:def setup_method(self):#setup和teardown用的少一般用fixture做前置后置self.driver = webdriver.Chrome()self.wait = WebDriverWait(self.driver, 10)self.driver.get("http://novel.hctestedu.com/user/login.html")def teardown_method(self):time.sleep(3)self.driver.quit()@pytest.mark.parametrize("data",[{'user':13587545934,'pwd':'q20050821'},{'user':'13587545933', 'pwd':'q20050821'}])def test_login_success(self,data):self.driver.find_element(By.ID, "txtUName").send_keys(data['user'])self.driver.find_element(By.ID, "txtPassword").send_keys(data['pwd'])# 判断是否改变地址login_url = self.driver.current_urlself.driver.find_element(By.ID, "btnLogin").click()time.sleep(2)sjmsg = self.wait.until(ec.url_changes(login_url))assert sjmsg== True , 'Login fail'#密码失败:if __name__ =="__main__":pytest.main(["-sv",'mark_test.py'])

会话级别与作用

import pytest
from selenium import webdriverimport time# @pytest.fixture(scope='function')#function级别会一个一个打开网页 class同理
# def browser():
#     driver=webdriver.Chrome()
#     yield driver
#     driver.quit()
@pytest.fixture(scope='session')#session级别会在一个浏览器上打开所有网页 module同理
def browser():driver=webdriver.Chrome()yield driverdriver.quit()
import pytestdef test_taobao(browser):browser.get('https://www.taobao.com/')assert 1==1
def test_baidu(browser):browser.get('https://www.baidu.com/')assert  1==2if __name__ == '__main__':pytest.main(['-vs','wy_test.py'])

http://www.dtcms.com/a/337120.html

相关文章:

  • 决策树:机器学习中的直观分类与回归工具
  • CPTS---Active 复现
  • Python netifaces 库详解:跨平台网络接口与 IP 地址管理
  • Alma Linux 8 中解决掉 Failed to set locale, defaulting to C.UTF-8
  • vue3入门-v-model、ref和reactive讲解
  • Flink Stream API - 源码开发需求描述
  • Apache IoTDB集群部署实战:1C2D架构的高性能时序数据库搭建与优化指南
  • Claude Code 代理商汇总:2025年最新评测
  • 【Vivado TCL教程】从零开始掌握Xilinx Vivado TCL脚本编程(一)
  • 【Jenkins】03 - 自动构建和docker构建
  • 在 CentOS 7 上使用 LAMP 架构部署 WordPress
  • 制作全流程对比:侗家灰水粽VS布依族草灰粽的8道工序差异
  • 大厂 | 华为半导体业务部2026届秋招启动
  • scikit-learn/sklearn学习|弹性网络ElasticNet解读
  • 机器学习-决策树:从原理到实战的机器学习入门指南
  • 大模型的底层运算线性代数
  • 实现自学习系统,输入excel文件,能学习后进行相应回答
  • 香港服务器是否支持RAID磁盘阵列?
  • RTSP 播放器 vs RTMP 播放器:延迟对比与技术实践
  • HAProxy使用方法以及和LVS区别
  • 【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
  • NY291NY297美光固态闪存NY298NY303
  • Jina Embeddings:高性能多模态向量模型的演进之路
  • Minitab AI 加持的头脑风暴法,破解企业改进难题
  • 驱动开发系列64 - glCompileShader实现之 GLSL normalize 精度优化
  • Linux 中断机制深度分析
  • SpatialLLM,SpatialReasoner,SpatialLM论文解读
  • 云原生事件驱动引擎(RocketMQ-EventBridge)应用场景与技术解析
  • 01数据结构-交换排序
  • 【EI会议征稿通知】第五届高性能计算、大数据与通信工程国际学术会议(ICHBC 2025)