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(), 第一个参数用逗号开分隔 ...
随机推荐
- 2020年Android开发最新整理阿里巴巴、字节跳动、小米面经,你不看看吗?
前言 2020年是转折的一年,上半年疫情原因,很多学android开发的小伙伴失业了,虽找到了一份工作,但高不成低不就,下半年金九银十有想法更换一份工作,很多需要大厂面试经验和大厂面试真题的小伙伴,想 ...
- python 作业 用python实现 mysql查询结果导出带列名
1 import pandas as pd 2 import numpy as np 3 import matplotlib as mpl 4 import matplotlib.pyplot as ...
- Docker(1)- 什么是 Docker
如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 备注 这里的概念直接引用官方的, ...
- Python+Django实现微信扫码支付流程
Python+Django实现微信扫码支付流程 关注公众号"轻松学编程"了解更多. 获取源码可以加我微信[1257309054],文末有二维码. [微信公众号支付官网]https: ...
- Python爬虫练习(多线程,进程,协程抓取网页)
详情点我跳转 关注公众号"轻松学编程"了解更多. 一.多线程抓取网页 流程:a.设置种子url b.获取区域列表 c.循环区域列表 d.创建线程获取页面数据 e.启动线程 impo ...
- numpy的统计分析
一.排序 间接排序(argsort,lexsort) 根据一个或多个数据集进行排序 1.Sort() --对数值直接进行排序 a.一维排序 b.二维排序 c.axis的认知 2.argsort() - ...
- 【Java】阿里巴巴开发规范手册
Java 开发手册 一. 编程规约 (一) 命名风格 [强制]代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name, $name, __name [强制]代码中 ...
- linux查找大文件及详细问题
查询大文件du -h --max-depth=1 查询指定目录下面的文件大小du -h --max-depth=1 /path 使用find命令查找大于200M文件 find / -type f -s ...
- 20181301刘天宁 MyOD
一.题目要求: 1.复习c文件处理内容编写myod.c 2.用myod XXX实现Linux下od -tx -tc XXX的功能 3.main与其他分开,制作静态库和动态库 4.编写Makefile ...
- 19、Haystack
Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...