python基础知识-day9(数据驱动)
1、数据驱动的概念
在自动化测试中,需要把测试的数据分离到JSON,YAML等文件中。
2、YAML 的相关知识
YAML 入门教程 分类 编程技术 YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言)。YAML 的语法和其他高级语言类似,并且可以简单表达清单、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲(例如:许多电子邮件标题格式和YAML非常接近)。YAML 的配置文件后缀为 .yml,如:runoob.yml 。基本语法 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释
3、json数据驱动案例实战
1)在工程文件testDev下新建一个名为数据驱动的package;
2)在数据驱动包中新建login.json的文件;
3)在login.json文件在中编写如下代码:
1 {
2 "login":{"username": "cch","password":"admin"}
3 }
4)在数据驱动包中新建operationJson的python文件,并编写如下代码:
1 import json
2 def readJson():
3 return json.load(open("login.json")) #从login.json文件中读取数据
4 print(readJson())
5 print(type(readJson()))
6
7 print(readJson()["login"]["password"]) #从字典中获取登录的密码
5)运行operationJson文件中的代码后,得到如下结果:

4、yaml数据驱动案例实战1
1)在工程文件testDev下新建一个名为数据驱动的package;
2)在数据驱动包中新建login.yaml的文件;
3)在login.yaml文件在中编写如下代码:
1 login:
2 username: 无涯 #注意冒号后边需空一格
3 password: admin
4
5 ali:
6 taobao:
7 shop:
8 name: 无涯课堂
4)在数据驱动包中新建operationYaml的python文件,并编写如下代码:
1 import yaml
2 def readYaml():
3 with open(file="login.yaml",mode="r",encoding="utf-8") as f:
4 return yaml.safe_load(f)
5 print(readYaml())
6 print(type(readYaml()))
7 print(readYaml()["login"]["password"])
8 print(readYaml()["ali"]["taobao"]["shop"]["name"])
5)运行operationYaml文件中的代码,得到如下结果:

4、yaml数据驱动案例实战2
1)在工程文件testDev下新建一个名为数据驱动的package;
2)在数据驱动包中新建data.yaml的文件;
3)在data.yaml文件在中编写如下代码:
1 --- #注意须添加“---”表示列表
2 login:
3 username: 无涯
4 ---
5 login:
6 username: wuya
4)在数据驱动包中新建operationYaml的python文件,并编写如下代码:
1 import yaml
2 def readYamlList():
3 with open(file="data.yaml",mode="r",encoding="utf-8") as f:
4 return list(yaml.safe_load_all(f))
5 print(readYamlList())
6 print(type(readYamlList()))
7 print(readYamlList()[0]["login"]["username"]) #获取“无涯”
8 print(readYamlList()[1]["login"]["username"]) #获取“wuya”
5)运行operationYaml文件中的代码,得到如下结果:

5、csv数据驱动案例实战1(列表形式)
1)在module包下面导入一个名为data.csv的文件,文件内容如下:
1 username,password,city 2 无涯,admin,中国西安 3 wuya,admin,西安
2)在module包下面新建一个名为csv学习的python文件,并编写以下代码:
1 import csv
2 def readCsvList():
3 lists=[]
4 with open(file='data.csv',mode="r",encoding="utf-8") as f:
5 reader=csv.reader(f) #调用reader形成列表形式
6 next(reader) #不读取第一行
7 for item in reader:
8 lists.append(item)
9 return lists
10 print(readCsvList())
以上代码运行的结果为:

6、csv数据驱动案例实战1(字典形式)
1)在module包下面导入一个名为data.csv的文件,文件内容如下:
1 username,password,city 2 无涯,admin,中国西安 3 wuya,admin,西安
2)在module包下面新建一个名为csv学习的python文件,并编写以下代码:
1 import csv
2 def readCsvDict():
3 lists=[]
4 with open(file="data.csv",mode="r",encoding="utf-8-sig") as f:#使用encoding="utf-8-sig",防止乱码
5 reader=csv.DictReader(f)
6 for item in reader:
7 lists.append(dict(item))
8 return lists
9 print(readCsvDict())
以上代码的运行结果为:

7.excel数据驱动案例实战
1)在module包下面导入一个名为data.xlsx的文件,文件内容如下:
| username | password | city |
| 无涯 | admin | 中国西安 |
2)在module包下面新建一个名为excel学习的python文件,并编写以下代码:
1 import xlrd
2 def readExcel():
3 lists=[]
4 book=xlrd.open_workbook("data.xlsx") #读取excel文件
5 sheet=book.sheet_by_index(0) #操作sheet
6 for item in range(1,sheet.nrows):
7 lists.append(sheet.row_values(item))
8 return lists
9 print(readExcel())
以上代码的运行结果为:

python基础知识-day9(数据驱动)的更多相关文章
- python基础知识-day9(库学习)
1.os学习 1 print(os.name) #获取操作系统 2 print(os.path.exists("D:\soft\python")) #判断路径是否存在 3 prin ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python基础知识(二)
以下内容,作为python基础知识的补充,主要涉及基础数据类型的创建及特性,以及新数据类型Bytes类型的引入介绍
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python基础知识讲解——@classmethod和@staticmethod的作用
python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- python 爬虫与数据可视化--python基础知识
摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- Python基础知识(五)
# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...
随机推荐
- 帝国CMS网站地图生成插件
可以生成电脑端也可以生成手机端的地图XML. 安装方法: 这个帝国sitemap插件的安装跟其他插件的安装方式一样,介于可能有人不会安装帝国的插件,就写一下吧,以后你们如果碰到帝国插件也可以参考这个. ...
- 两数之和II_LeetCode_167_1099
LeetCode_167原题链接:https://leetcode-cn.com/problems/two-sum-ii-input-array-is-sorted/ LeetCode_1099原题链 ...
- 2021.07.02 UVa1197 多路归并模板
2021.07.02 UVa1197 多路归并模板 UVA11997 K Smallest Sums - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 分析: 题解 UVA11997 ...
- 2021.08.06 P2441 角色属性树(树形结构)
2021.08.06 P2441 角色属性树(树形结构) P2441 角色属性树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题意: 求离x最近的祖先y且(x,y)>1. ...
- Python多线程Threading爬取图片,保存本地,openpyxl批量插入图片到Excel表中
之前用过openpyxl库保存数据到Excel文件写入不了,换用xlsxwriter 批量插入图片到Excel表中 1 import os 2 import requests 3 import re ...
- Java 8的18个常用日期处理
Java 8的18个常用日期处理 一.简介 伴随 lambda表达式.streams 以及一系列小优化,Java 8 推出了全新的日期时间API. Java处理日期.日历和时间的不足之处:将 java ...
- 【ACM程序设计】差分
差分 假设有一个数列,我们需要对数列中的一个区间加上或减去一个值,直接想到的便是对该区间进行一次循环逐项加减. 但是当请求的操作变得非常多的时候,每次请求都进行一次循环会很容易爆时间,因此我们引入了差 ...
- 【VMware】在移动硬盘或U盘中安装便携linux系统
背景: 操作系统课需要在Linux环境下进行编程.本来是给了个傻瓜式的Ubuntu虚拟机镜像,但奈何虚拟机这东西我这老本子跑起来巨卡,装双系统又卡,只能选择把系统装进便携设备里了. 前期准备: 一个2 ...
- Python最强IDE(PyCharm)安装教程
欢迎关注公众号[Python开发实战],免费领取Python学习电子书! PyCharm是目前最流行.使用最广泛的Python IDE(Integrated Development Environme ...
- Mac IntelliJ IDEA插件开发,IDEA Plugin SDK路径
On Mac, select application icon in /Applications/ 官方文档: Setting Up a Development Environment