Python+Selenium自动化测试-代码与数据分离

在自动化测试中,把测试数据从测试代码中分离出来,可以大大降低维护的成本。例如:使用代码与测试数据分离,当测试数据发生变化时,只需要修改数据即可,不会对主干代码产生影响。可以把测试数据存储在文本或数据库中,本文计划用excel文件存储测试数据。
测试数据分离前:页面的登录操作中的用户名、密码等数据写在测试代码中。如下:

login_page.set_username(‘s1’)  # 输入用户名
login_page.set_password('1') 

**测试数据分离后:**页面登录操作红的用户名、密码等数据记录在excel文本中,如下:
在这里插入图片描述
具体操作:
前提:首先使用pip命令安装xlrd依赖,然后improt导入,接下来我们就可以使用它来编写自己的数据驱动工具类了。

1.创建excel文件

创建data文件夹,并在文件夹下创建excel文件,用来存储数据。
在这里插入图片描述
excel文件中添加测试数据:
在这里插入图片描述
2.完善public_functions函数:读写excel文件

# 读取csv文件中每一行的数据并保存为一个列表返回(列表中每一个元素是一个元组,该元组包含了每一行数据的键值对)
def read_data_from_csv(csv_file_path):
    wb = xlrd.open_workbook(csv_file_path)
    sheet = wb.sheet_by_index(0)
    rows = sheet.nrows
    cols = sheet.ncols
    listData = []
    for i in range(1, rows):
        dictTemp = {}
        for j in range(0, cols):
            dictTemp[sheet.cell(0, j).value.encode('utf-8')] = sheet.cell(i, j).value
        listData.append(dictTemp)
    return listData

3.修改页面操作的数据内容
(1).调用步骤2中的方法获取测试数据,并以列表的形式返回

userconfig = pf.read_data_from_csv('..\\data\\test\\test.xlsx')

userconfig返回值如下:[{‘username’: u’s1’, ‘password’: u’1’}](参考步骤1中创建的excel数据)
(2).参数设值

login_page.set_username(userconfig[0].get('username'))  # 输入用户名 login_page.set_password(userconfig[0].get('password')) 

在这里插入图片描述
至此,一个简单的代码与测试数据分离的demo就完成了。后续还需要不断完善public_functions函数。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值