pytest参数化
Pytest可以在多个级别上实现测试参数化
一.@pytest.fixture装饰器调用参数
示例
import pytest
from selenium import webdriver
from time import sleep @pytest.fixture(scope="module",params=["python","java"])
def modarg(request):
param = request.param
# print(f"setup modarg {param}")
yield param
# print(f"teardown modarg {param}")
def test_login(modarg):
dr = webdriver.Chrome()
dr.get('https://www.baidu.com')
dr.find_element_by_id('kw').send_keys(modarg)
dr.find_element_by_id('su').click()
sleep(2)
print(modarg)
dr.quit()
执行:
pytest -v -s xxx.py

二. @pytest.mark.parametrize :参数化测试功能
示例1
import pytest
from selenium import webdriver
from time import sleep
@pytest.mark.parametrize(
"username",
[
"python",
"java"
]
) def test_login(username):
dr = webdriver.Chrome()
dr.get('https://www.baidu.com')
dr.find_element_by_id('kw').send_keys(username)
dr.find_element_by_id('su').click()
sleep(2)
print(username)
dr.quit()
执行方式同上!
多参数示例2:
import pytest
from selenium import webdriver
from time import sleep
@pytest.mark.parametrize(
"username,password",
[
("admin","admin123"),
("guest","guest123"),
]
) def test_login(username,password):
dr = webdriver.Chrome()
dr.maximize_window()
dr.get('https://www.baidu.com')
js = "document.querySelector('#u1 > a.s-top-login-btn.c-btn.c-btn-primary.c-btn-mini.lb').click()"
dr.execute_script(js)
sleep(1)
js1 = "document.querySelector('#TANGRAM__PSP_11__footerULoginBtn').click()"
dr.execute_script(js1)
sleep(1)
dr.find_element_by_id('TANGRAM__PSP_11__userName').send_keys(username)
dr.find_element_by_id('TANGRAM__PSP_11__password').send_keys(password)
js2 = "document.querySelector('#TANGRAM__PSP_11__submit').click()"
dr.execute_script(js2)
sleep(2)
print(username)
print(password)
dr.quit()
执行:

pytest参数化的更多相关文章
- pytest「conftest、pytest参数化、重运行、出测试报告」
文章总览图 一.conftest问题整理: 1.这个conftest.py分路径吗?如果在TestCases下建这个包可以直接用吗? TestCases这里有ModeA和ModeB,想在ModeA或M ...
- 『德不孤』Pytest框架 — 15、Pytest参数化
目录 1.Pytest参数化说明 2.Pytest参数化方式 3.parametrize装饰器参数说明 4.Pytest参数化(单个参数) 5.Pytest参数化(多个参数) 6.ids参数说明 1. ...
- pytest参数化 parametrize
pytest.mark.parametrize装饰器可以实现测试用例参数化 parametrizing 1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 # content of test ...
- pytest参数化代码笔记
#!/usr/local/bin/python3 # -*- coding: utf-8 -*- import pytest __author__ = "Carp-Li" __da ...
- Pytest 学习(二十五)- 解决pytest参数化测试标题都一样问题
前言 使用参数化测试化后,allure的报告如下显示: 源代码如下: # -*- coding: utf-8 -*- # @Time : 2020/12/13 17:27 # @Author : lo ...
- Python基础之pytest参数化
上篇博文介绍过,pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升.在实际 工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余.这里,我们来了解一下 @pytest.ma ...
- pytest参数化的两种方式
1.传统方式 import requests,pytest from Learning.variable import * # 定义变量 #url = "https://www.baidu. ...
- pytest封神之路第五步 参数化进阶
用过unittest的朋友,肯定知道可以借助DDT实现参数化.用过JMeter的朋友,肯定知道JMeter自带了4种参数化方式(见参考资料).pytest同样支持参数化,而且很简单很实用. 语法 在& ...
- 【PYTEST】第三章参数化
知识点: 参数化 1. parametrize() 参数化测试用例 实际工作中,我们不可能就传一组数据,参数化支持多组数据测试,并且每组都会去执行,parametrize(), 第一个参数用逗号开分隔 ...
随机推荐
- FFmpeg 将大量图片合成为视频 video
1.基本格式终端输入: ffmpeg -f image2 -i /home/ttwang/images/image%d.jpg tt.mp4其中/home/ttwang/images/images%d ...
- pc和移动与ipad自适应布局的相关问题和解决
一.通过CSS检测本机设备屏幕大小分配样式 1.最小尺寸分辨率1024*768(传统17寸显示器),则可以采用940px.960px.或者常用的980px作为最小宽度. ---- 在可视区域的宽度小于 ...
- 项目实战:流水线图像显示控件(列刷新、1ms一次、缩放、拽拖、拽拖预览、性能优化、支持OpenGL GPU加速)
需求 流水线图像扫描采集控件(带模拟数据测试)性能需求 1.需至少满足可1ms接收一次列数据,而不丢包(接收后可不必立马显示) 2.图片刷新率可达30HZ:限制需求 1.图片高度最小只能 ...
- Java技术平台介绍
Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关, 如JavaBeans(咖啡豆).NetBeans(网络豆)以及ObjectB ...
- python爬虫中的requests模块
Requests: 让 HTTP 服务人类 一.简介 虽然Python的标准库中 urllib 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests ...
- Miller-Rabin 素数检验算法
算法简介 Miller-Rabin算法,这是一个很高效的判断质数的方法,可以在用\(O(logn)\) 的复杂度快速判断一个数是否是质数.它运用了费马小定理和二次探测定理这两个筛质数效率极高的方法. ...
- 别走!这里有个笔记:图文讲解 AQS ,一起看看 AQS 的源码……(图文较长)
前言 AbstractQueuedSynchronizer 抽象队列同步器,简称 AQS .是在 JUC 包下面一个非常重要的基础组件,JUC 包下面的并发锁 ReentrantLock CountD ...
- 第4章 Function语意学
第4章 Function语意学 目录 第4章 Function语意学 4.1 Member的各种调用方式 Nonstatic Member Function(非静态成员函数) virtual Memb ...
- yaf拓展安装步骤
1.wget http://pecl.php.net/get/yaf-3.0.7.tgz //下载yaf.tar 2.tar zxvf yaf-3.0.7.tgz //解压 3.cd yaf-3.0. ...
- Zookeeper(4)---ZK集群部署和选举
一.集群部署 1.准备三台机器,安装好ZK.强烈建议奇数台机器,因为zookeeper 通过判断大多数节点的存活来判断整个服务是否可用.3个节点,挂掉了2个表示整个集群挂掉,而用偶数4个,挂掉了2个也 ...