Selenium+Python参数化:读取TXT文件

发表于:2015-12-08 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:leo博客    来源:51Testing软件测试网采编

  概述
  从Selenium模块化一文中,可以看出参数化的必要性,本文来介绍下读取外部txt文件的方法。
  如何打开文件
  打开文件有以下两个函数可以应用:
  1、open(file_name,access_mode)
  file_name: 文件路径及名称;
  access_mode :访问方式,具体参数如下,,未提供参数,则默认为r:
  · r:表示读取;
  · w:表示写入;
  · a:表示添加;
  · +: 表示读写;
  · b:表示2进制访问;
  2、file函数
  file()内建函数它的功能等于open(),如下根据文档说明可知:
  >>> help(open)
  open(...)
  open(name[, mode[, buffering]]) -> file object
  Open a file using the file() type, returns a file object.  This is the
  preferred way to open a file.  See file.__doc__ for further information.(END)
  读取英文txt
  接下来介绍读取txt文件内容的方法,Python中提供了读取文件的几种方法,如下;
  · Read() 读取整个文件
  · Readlines()按行读取整个文件
  · Readeline()按行读取一行内容
  现在假设读取的txt文件存储的是用户登录名及密码的测试数据,内容如下:
  admin,admin
  guest,guest
  test,test
  那么这种情况就比较适合用按行读取的方式来获取文件,如下示例:
#coding:utf-8
import codecs
def str_reader_txt(address):
fp=open(address,'r')
users=[]
pwds=[]
lines=fp.readlines()
for data in lines:
name,pwd=data.split(',')
name=name.strip(' \t\r\n')
pwd=pwd.strip(' \t\r\n')
users.append(name)
pwds.append(pwd)
print "user:%s(len(%d))" %(name,len(name))
print "pwd:%s(len(%d))" %(pwd,len(pwd))
return users,pwds
fp.close()
  上述通过Readlines()按行读取txt文件内容,并且使用split()函数切割字符串,分别得到用户名和密码,需要注意的是读取出来的字符有最后面的回车符,所以需要strip函数进行过滤。
  读取中文txt
  但是实际测试过程中,也有可能需要输入中文的用户及密码,能否测试通过?修改测试文档txt的用户名为中文,内容如下:
  管理员,admin
  来宾,guest
  测试人员,test
  执行上述脚本后,结果如下:
  可以看出,上述的脚本,在进行中文处理时,遇到异常,中文字符显示乱码,下面提供两种解决方法:
  方法一
#coding:utf-8
import codecs
def str_reader_txt(address):
fp=open(address,'r')
users=[]
pwds=[]
lines=fp.readlines()
for data in lines:
print type(data)
data=data.decode("gb18030")#处理中文编码问题
print type(data)
name,pwd=data.split(',')
name=name.strip(' \t\r\n')
pwd=pwd.strip(' \t\r\n')
users.append(name)
pwds.append(pwd)
print "user:%s(len(%d))" %(name,len(name))
print "pwd:%s(len(%d))" %(pwd,len(pwd))
return users,pwds
fp.close()
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号