web自动化中pytest框架的使用(二)---参数化
1、pytest--参数化
在测试用例的前面加上@pytest.mark.parametrize("参数名",列表数据)
参数名:用来接收每一项数据,并作为测试用例的参数
列表数据:一组测试数据
2、使用参数列表数据,iten表示的参数名,列表数据LD.error_data,item相当于LD.error_data中的每一条数据,在函数中传入item参数,按代码中的取值方式,获得列表数据中对应的数据
from PageObjects.index_page import IndexPage
from TestDatas import login_datas as LD
import pytest
from Common.tools.my_logger import MyLogger
log=MyLogger()
# 使用access_web,作用域是类级别,类上只执行一次
@pytest.mark.usefixtures("access_web")
#使用refresh_page,作用域是函数级别,作用在每一个函数上
@pytest.mark.usefixtures("refresh_page")
@pytest.mark.one
class TestLogin:
# 异常用例--手机号码格式不正确(大于11位,小于11位,为空,不在号码段)
@pytest.mark.parametrize('item',LD.error_data)
def test_login_user_wrongFormat(self,item,access_web):
log.info("***********登录用例:异常场景:没有用户名/没有密码/用户名格式不对***********")
access_web[1].login(item['user'],item['pwd'])
assert access_web[1].get_errorMsg_form_loginArea()==item['check']
# 异常用例--手机号未注册,密码错误
@pytest.mark.parametrize('item',LD.noRegOrPwdError_data)
def test_login_noRegOrPwdError(self,item,access_web):
log.info("***********登录用例:异常场景:用户名未注册/密码错误***********")
access_web[1].login(item['user'],item['pwd'])
assert access_web[1].get_errorMsg_form_centerArea()==item['check']
pytest使用断言
assert 后面跟表达式(Ture or False)
web自动化中pytest框架的使用(二)---参数化的更多相关文章
- Selenium2学习-022-WebUI自动化实战实例-020-JavaScript 在 Selenium 自动化中的应用实例之二(获取浏览器显示区域大小)
前几篇文章中简略概述了,如何获取.设置浏览器窗口大小,那么我们该如何获取浏览器显示区域的大小呢?此文讲对此进行简略概述,敬请各位小主参阅.若有不足之处,敬请各位大神指正,不胜感激! 获取浏览器显示区域 ...
- Selenium+Python+jenkins搭建web自动化测测试框架
python-3.6.2 chrome 59.0.3071.115 chromedriver 2.9 安装python https://www.python.org/downloads/ (Wind ...
- web自动化中的page object模式
一. 原理 将页面的元素定位和元素行为封装成一个page类,实现页面对象和测试用例分离 类的属性:元素定位 类的行为:元素的操作 测试用例:调用所需页面对象中的行为,组成测试用例 二. 好处 1. 当 ...
- pytest框架之parametries数据驱动参数化
在测试用例的前面加上:@pytest.mark.parametrize('参数名', 列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数 列表参数:一组测试数据(元组.列表.字典) 方式一: ...
- Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...
- 基于Selenium的web自动化框架
转自 : https://www.cnblogs.com/AlwinXu/p/5836709.html 1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台. ...
- 【转】基于Selenium的web自动化框架(python)
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...
- 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!
一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...
- 【python+selenium的web自动化】- 元素的常用操作详解(一)
如果想从头学起selenium,可以去看看这个系列的文章哦! https://www.cnblogs.com/miki-peng/category/1942527.html 本篇主要内容:1.元素 ...
随机推荐
- 自动化运维Ansible之常用模块
目录 0.Ansible模块语法 1.Command模块 2.Shell模块 3.Scripts模块 4.Copy模块 5.File模块 6.Yum模块 7.Service模块 8.Cron模块 9. ...
- 剑指offer刷题总结
★ 二维数组的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否 ...
- 数据分析_numpy_基础2
数据分析_numpy_基础2 sqrt 开方 arr = np.arange(10) arr # array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) np.sqrt(arr) ...
- vue2.0 操作数组下标不跟新ui,使用set()或$forceUpdate 也不能跟新视图情况
在vue 2.0 中操作数组不跟新ui图,即使使用set()或 $forceUpdate也不能跟新视图,我在前段时间也遇到了一个问题,当时我使用的时element 的tree 组件 由于需要对tree ...
- D 楼房重建
时间限制 : - MS 空间限制 : - KB 评测说明 : 1s,256m 问题描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊 ...
- 2019NYIST计科第七次周赛总结
2019NYIST计科第七次周赛总结 文章目录 2019NYIST计科第七次周赛总结 [秤取物体重量( 二进制枚举法)](https://blog.csdn.net/qq_34261446/artic ...
- linux下zip/unzip详解
linux下zip_unzip详解 命令列表:zip -q (quiet) -r (recursive) -0(level0-level9) -e (encrypt) - ...
- docker搭建可视化portainer
一.在docker中查询portainer # docker search portainer 二.下载portainer # docker pull portainer/portainer 三.运行 ...
- Jmeter 压力测试笔记(3)--脚本调试/签名/cookie/提升吞吐量/降低异常率/提升单机并发性能
import XXXsign.Openapi2sign;---导入jar包中的签名方法 String str1 = "12121"; ---需要被签名的字段:向开发了解需要哪些哪些 ...
- LINUX解压缩 zip文件
压缩当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip xxx.zip