Selenium3自动化测试——19.读取数据文件

1. 实现目标

在测试与开发中,经常需要对文件进行各种读取操作。这里介绍针对txt、csv、xml、json文件的读取。

2. 读取TXT文件

2.1 user_info.txt文件

:123
user:
error:error
admin:admin123eee?

2.2 读取txt文件.py

#line[:-1]其实就是去除了这行文本的最后一个字符(换行符)后剩下的部分。
#读取文件
with(open("./data_file/user_info.txt","r")) as user_file:
    data = user_file.readlines()

#格式化处理
users=[]
for line in data:
    user = line[:-1].split(":")
    users.append(user)

#打印users二维数组
print(users)

2.3 实现结果

3. 读取csv文件

3.1 user_info.csv

用户名,密码,断言
,123,请输入账号
user,,请输入密码
error,error,账号或密码错误
admin,admin123,admin您好
guest,guest123,guest您好

 这里要注意,csv文件本身打开是utf-8的,而不是乱码

3.2 读取csv文件.py

import csv
import codecs
from itertools import islice

# 读取本地csv文件
data = csv.reader(codecs.open("./data_file/user_info.csv", 'r', "utf_8_sig", errors="ignore"))
# 存放用户数据
users = []
# 循环输出每行信息
for line in islice(data, 1, None):
    users.append(line)

# 打印
print(users)

这里,针对乱码问题,可以在open方法里添加“,errors="ignore”,忽略乱码错误!

3.3 实现结果

[['', '123', '请输入账号'], ['user', '', '请输入密码'], ['error', 'error', '账号或密码错误'], ['admin', 'admin123', 'admin您好'], ['guest', 'guest123', 'guest您好']]

4. 读取xml文件

4.1 config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<info>
    <platforms>
        <platform>Windows</platform>
        <platform>Linux</platform>
        <platform>macOS</platform>
    </platforms>
    <browsers>
        <browser>Firefox</browser>
        <browser>Chrome</browser>
        <browser>Edge</browser>
    </browsers>
    <url>http://www.baidu.com</url>
        <login username="admin" password="123456"></login>
        <login username="guest" password="guest12"></login>
</info>

4.2 读取xml文件.py

from xml.dom.minidom import parse

# 打开XML文件
dom = parse("./data_file/config.xml")

# 得到文档元素对象
root = dom.documentElement

# 获取一组标签
tag_name = root.getElementsByTagName('platform')
print(tag_name[0].tagName)

# 获取属性名
login_tag = root.getElementsByTagName('login')
username = login_tag[0].getAttribute('username')
print(username)
password = login_tag[0].getAttribute('password')
print(password)

#获取标签之间的数据
msg = root.getElementsByTagName("browser")
prs = msg[0].firstChild.data
print(prs)
print(msg[1].firstChild.data)
print(msg[2].firstChild.data)

这里介绍了对标签、标签属性、标签之间数据的读取,可以解决所有xml文件的读取数据问题。

4.3 实现结果

5. 读取JSON文件

5.1 user_info.json

[
  {"username": "","password": ""},
  {"username": "","password": "123"},
  {"username": "user","password": ""},
  {"username": "error","password": "error"},
  {"username": "admin","password": "admin123"},
  {"username": "xushan","password": "shanxu"}
]

5.2 读取json文件.py

import json

with open("./data_file/user_info.json", "r") as f:
    data = f.read()

user_list = json.loads(data)
print(user_list)

5.3 实现结果

[{'username': '', 'password': ''}, {'username': '', 'password': '123'}, {'username': 'user', 'password': ''}, {'username': 'error', 'password': 'error'}, {'username': 'admin', 'password': 'admin123'}, {'username': 'xushan', 'password': 'shanxu'}]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章