今天介绍两种实现数据驱动的方法,json和excel,我们以获取企业微信token接口为例,共

有两个参数corpid&corpsecret

一.json

方法一:@pytest.mark.parametrize实现数据驱动有三种写法

写法一:

写法二:

写法三:

 方法二:

1.使用json读取json文件内容实现数据驱动,在实现前先介绍json常用的几个方法

loads():将json类型的字符串转换成字典类型

dumps():将字典类型转换成字符串

dump():将字典类型的数据转化为json格式并输入到文件中

load():输出json文件流

下面是简单的实例用法:

2.下面介绍下具体使用,首先我们需要创建一个file文件,以json为结尾的,写法如下,注

意的是最外层需要嵌套个中括号

3.接下来就是用load()文法读取流,在.py文件中导入json模块,open()打开文件,具体写法

如下

二.excel(openpyxl)

1.今天介绍使用openpyxl插件来操作excel,看下常用的方法和指令

load_workbook(name.xlsx):打开一个excel文件

file.sheetnames或file.worksheets:获取工作簿中的所有工作表

file.active:获取当前活动工作表

file["工作表名称"]:获取指定的工作表

a.max_row:获取当前工作表中的行数

a.max_column:获取当前工作表中的列

a.cell(row=x,column=y).value:根据数字坐标获取单元格内容

a["A2"].value:根据字母+数据获取单元格内容(A、B、C表示列,1、2、3表示行数。例:D4表示的

是获取第四列第四个单元格内容,)

a["A2"].row:获取当前单元格的行坐标

a["A2"].column:获取当前单元格的列坐标

a["A2"].coordinate:获取当前单元格的字母+数字的组合坐标

a["A2"]="...":可更改单元格内容

2.下面进入正题,首先创建个file文件,以xlsx结尾的,我这边只列了两列数据

3.安装openpyxl插件:pip install openpyxl

4.创建.py文件,导入openpyxl模块,获取单元格内容,并将获取的内容添加到列表中,

执行后得到列表的数据类型

5.在测试case中直接导入该.py文件调用xlse()方法,具体如下。

完............

pytest-数据驱动的更多相关文章

  1. python+request+pymysql+pytest数据驱动

    一.pymysql简单使用 1.安装mysql 下载地址:https://www.mysql.com/,安装教程这里不做介绍了,网上一大推. 2.安装pymysql库 在Terminal终端输入:pi ...

  2. 5.@pytest.mark.parametrize()数据驱动

    简介: pytest.mark.parametrize 是 pytest 的内置装饰器,它允许你在 function 或者 class 上定义多组参数和 fixture 来实现数据驱动. @pytes ...

  3. pytest框架之parametries数据驱动参数化

    在测试用例的前面加上:@pytest.mark.parametrize('参数名', 列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数 列表参数:一组测试数据(元组.列表.字典) 方式一: ...

  4. python的数据驱动

    什么叫数据驱动? 登录用例 ->不用的用户名登录,但是自动化化脚本一样,虽然脚本相同,步骤相同,但是不同的用户名登录得出的数据是不一样的,于是就有了数据驱动,就是数据的改变驱动自动化测试的执行导 ...

  5. selenium java 读取xml (数据驱动)

    selenium 数据驱动 (xml解析) getElementByTagName()可以通过标签名获取某个标签.它所获取的对象是以数组形式存放.如“caption”和“item”标签在info.xm ...

  6. Pytest进阶之参数化

    前言 unittest单元测试框架使用DDT进行数据驱动测试,那么身为功能更加强大且更加灵活的Pytest框架怎么可能没有数据驱动的概念呢?其实Pytest是使用@pytest.mark.parame ...

  7. pytest框架与unittest框架的对比

    一.pytest的优势 pytest是基于unittest之上的单元测试框架,它的优势如下: 自动发现测试模块和测试方法 断言使用 assert + 表达式 可以设置测试会话级(session).模块 ...

  8. pytest 常见用法

    前言 之前一篇文章简单介绍了 pytest 以及 fixture :https://www.cnblogs.com/shenh/p/11572657.html .实际在写自动化测试脚本中,还会有一些很 ...

  9. pytest-Mark数据驱动

    数据驱动 import pytest @pytest.mark.parametrize(("a", "b", "expected"), [ ...

  10. pytest中怎么实现参数化?

    我们在组自动化项目中,肯定会遇到需要数据驱动的地方,在unittest中我们直接采用ddt的方式,但是在pytest中我们不能用ddt来实现,所以我们采用了参数化的方式来实现 那么具体怎么完成这个参数 ...

随机推荐

  1. iOS App的打包和上架流程

    ​ 转载:iOS App的打包和上架流程 - 掘金 1. 创建账号 苹果开发者账号几种开发者账号类型 个人开发者账号 费用:99 美元/年(688.00元) 协作人数:仅限开发者自己 不需要填写公司的 ...

  2. 十大 CI/CD 安全风险(二)

    在上一篇文章中,我们主要介绍了 CI/CD 中流程控制机制不足和身份及访问管理不足两大安全风险,并为企业及其开发团队在缓解相应风险时给出了一些建议.今天我们将继续介绍值得企业高度关注的 CI/CD 安 ...

  3. 【HZERO】消息发送

    消息发送 https://open.hand-china.com/community/detail/625843016338378752 新建模板 @Override public String sh ...

  4. UVA - 10935:Throwing cards away I (简单模拟)

    题目大意 桌上有一叠牌,自上而下编号为1~n.若桌上牌数大于1张,那么丢弃一张顶部牌后,再将现在的顶部牌移到最后.要求给出模拟过程和最终剩余的牌号 思路分析 典型队列模拟,丢弃即出队,移到最后即入队, ...

  5. AcWing 第 12 场周赛

    题目链接:Here AcWing 3805. 环形数组 签到题,循环减少出现次数,如果是 cnt[x] = 1 的话加入新的数组中 const int N = 1e3 + 10; int cnt[N] ...

  6. 题解 [HDU6746] Civilization(贪心+模拟)

    来源:2020 年百度之星·程序设计大赛 - 初赛一 一道贪心 + 细节模拟题 题意很简单,这里不详细写了 观察题目,\(n\) 只有 500 ,可以 \(n \times n\) 枚举每个位置作为起 ...

  7. 【每日一题】7.月月查华华的手机 (枚举 or 序列自动机)

    题目链接:Here 题意总结:\(N\) 次查询串 \(B\) 是否是 \(A\) 的子序列. 思路一 个人做法,枚举原字符串的每一位,如果匹配当前字符串的字符则 m++ 直到字符串枚举完毕或者 m ...

  8. springboot项目pom文件设置<profile>读取不同的配置文件(网上瞎copy的大把,测试过真实可用)

    这篇文章主要介绍关于springboot如何通过多个properties实现数据库环境部署时自动切换配置的两种方式,部署时切换方式和打包时Maven控制方式.

  9. 面试重点:webpack

    webpack 熟练掌握Webpack的常用配置,能够自己构建前端环境,并进行项目优化; 001.谈谈你对webpack的看法: webpack是一个模块打包工具,可以使用它管理项目中的模块依赖,并编 ...

  10. element-ui 实现行合并-亲测有效!

    目标样式: 首先先来看下我们拿到的返回数据: scheduleList: [ { date: '第一天', journey: '报道', lecturer: '', }, { date: '第二天', ...