python自动化测试之如何解析excel文件

yizhihongxing

为了更好地讲解“python自动化测试之如何解析excel文件”的实例教程,我们将分为以下几个步骤进行:

1.准备Excel测试数据文件

首先我们需要准备一个测试数据文件,这里我们可以使用Excel来存储我们的测试数据。使用Excel存储数据有很多好处,比如数据可以被格式化整齐,而且可以直观地查看数据,方便日后测试人员进行修改、维护和管理。在这个教程中,我们将使用一个测试数据文件test.xlsx。测试数据文件的内容如下:

username password
user1 pwd1
user2 pwd2
user3 pwd3

上述表格中,我们可以看到我们模拟了3个测试用户的账号和密码数据。

2.使用Python读取Excel测试数据文件

我们可以使用openpyxl第三方库实现对Excel文件的读取和解析。使用openpyxl读取Excel文件非常方便,我们使用下面的Python代码块来读取我们的Excel测试数据文件:

import openpyxl

# 打开测试数据文件
workbook = openpyxl.load_workbook('test.xlsx')

# 选择测试的工作表
sheet = workbook.active

# 定义变量来存储解析后的测试数据
test_data = []

# 遍历测试数据行数,从第2行开始,第1行是表格头
for row in range(2, sheet.max_row + 1):
    # 定义一个测试用例
    data = {}
    # 解析测试用例参数
    data['username'] = sheet.cell(row=row, column=1).value
    data['password'] = sheet.cell(row=row, column=2).value
    # 将解析后的测试用例添加到测试数据列表中
    test_data.append(data)

# 打印解析后的测试数据
print(test_data)

上面的代码块实现了对Excel测试数据文件的解析。代码逐行解释如下:

  • import openpyxl:导入openpyxl

  • workbook = openpyxl.load_workbook('test.xlsx'):打开测试数据文件test.xlsx,获取工作簿对象

  • sheet = workbook.active:选择活动工作表(第一个工作表)

  • test_data = []:定义一个空的列表,用于存储解析后的测试数据

  • for row in range(2, sheet.max_row + 1)::从第2行开始遍历测试数据,因为第一行是表格头

  • data = {}:定义一个空的字典,用于存储解析后的单个测试用例数据

  • data['username'] = sheet.cell(row=row, column=1).value:读取单元格的行列信息,并将数据存储到字典中

  • data['password'] = sheet.cell(row=row, column=2).value:同上

  • test_data.append(data):将字典对象存储到测试数据列表中

  • print(test_data):打印解析后的测试数据

运行上面的程序,我们可以得到以下结果:

[{'username': 'user1', 'password': 'pwd1'},
 {'username': 'user2', 'password': 'pwd2'},
 {'username': 'user3', 'password': 'pwd3'}]

上面的输出结果就是我们解析后的测试数据。可以看出,我们成功地从Excel测试数据文件中读取了数据。

3.使用读取到的测试数据执行自动化测试

我们使用Python的selenium模块来执行一个简单的自动化测试,测试我们解析到的3个账号和密码是否都能够成功登录一个网站。

from selenium import webdriver

# 定义测试网站URL和登录表单信息
url = 'http://localhost:8080/login'
login_form = {
    'username': '//input[@name="username"]',
    'password': '//input[@name="password"]',
    'submit': '//button[@type="submit"]'
}

# 定义函数,用来执行自动化测试
def test_login(username, password):
    # 启动Chrome浏览器
    driver = webdriver.Chrome()
    try:
        # 打开待测试网站
        driver.get(url)
        # 输入账号密码并提交
        driver.find_element_by_xpath(login_form['username']).send_keys(username)
        driver.find_element_by_xpath(login_form['password']).send_keys(password)
        driver.find_element_by_xpath(login_form['submit']).click()
        # 判断是否登录成功
        assert '登录成功' in driver.page_source
    finally:
        # 关闭浏览器
        driver.quit()

# 遍历解析后的测试数据,分别进行自动化测试
for data in test_data:
    test_login(data['username'], data['password'])

上述代码块实现了使用自动化测试工具selenium自动登录一个网站,使用Excel中解析到的数据循环进行自动化测试,并判断测试用例是否执行成功。

运行上面的程序,我们可以在控制台看到如下输出结果:

```
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]
[SELENIUM LOGS TO IGNORE]


AssertionError Traceback (most recent call last)
in
29 # 遍历解析后的测试数据,分别进行自动化测试
30 for data in test_data:
---> 31 test_login(data['username'], data['password'])

in test_login(username, password)
18 driver.find_element_by_xpath(login_form['submit']).click()
19 # 判断是否登录成功
---> 20 assert '登录成功' in driver.page_source
21 finally:
22 # 关闭浏览器

AssertionError:

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python自动化测试之如何解析excel文件 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 基于sklearn实现Bagging算法(python)

    基于sklearn实现Bagging算法(python) Bagging算法是一种集成学习方法,它通过对多个基分类器的测结果进行平均或投票来提高模型的准确性。本文将详细介绍如何Python中的sklearn库实现Bagging算法提供两个示例说明。 Bagging算法简介 Bagging法是一种集成学习方法,它通过对多个基分类器的测结果进行平均或投票来提高模…

    python 2023年5月14日
    00
  • Excel 如何把科学记数法转换为文本或数字

    在 Excel 中,您可以使用以下步骤将科学记数法转换为文本或数字: 将科学记数法转换为文本或数字 以下是将科学记数法转换为文本或数字的完整攻略: 将科学记数法转换为文本 选中要转换的单元格或单元格范围。 在 Excel 中,选择“开始”选项卡。 在“数字”组中,选择“文本”格式。 单击“确定”按钮。 数字将被转换为文本格式。 将科学记数法转换为数字 选中要…

    云计算 2023年5月10日
    00
  • Python排序算法之堆排序算法

    下面是详细讲解“Python排序算法之堆排序算法”的完整攻略,包含两个示例说明。 堆排序算法 堆排序算法是一种基于二叉堆的排序算法。它的基本思想是将待排序的序列构建成一个二叉堆,然后不断将堆顶元素与堆底元素交换,再重新调整,到整个序列有序为止。 堆排序算法的Python实现 下面是一个示例代码,用于实现堆排序算法: def heap_sort(arr): n…

    python 2023年5月14日
    00
  • 在python中实现对list求和及求积

    以下是详细讲解“在Python中实现对List求和及求积”的完整攻略。 在Python中,可以使用内置函数sum()和reduce()实现对List求和及求积。本文将介这两种方法,并提供两个示例说明。 方法一:使用sum()函数求和 可以使用内置函数sum()实对List求和例如: lst = [1, 2, 3, 4, 5] s = sum(lst) pri…

    python 2023年5月13日
    00
  • Python时间戳转换为字符串与字符串转换为时间戳

    关于Python时间戳转换为字符串与字符串转换为时间戳的攻略,我可以提供如下内容: 时间戳转换为字符串 步骤: 1.引入time模块2.使用time模块的strftime()方法(时间戳转换为字符串) – 参数1:格式化字符串 – 参数2:时间元组(由时间戳转换得到) 示例: 下面是一个将时间戳转换为字符串的示例: import time # 获取当前时间戳…

    python 2023年6月2日
    00
  • 基于MATLAB和Python实现MFCC特征参数提取

    首先,MFCC(Mel-frequency cepstral coefficients)特征参数是语音信号分析中常用的语音特征参数之一,用于语音识别、说话人识别等领域。而MATLAB和Python都是常用的语音信号处理工具。因此,对于需要进行语音信号处理的人来说,学会如何用MATLAB和Python实现MFCC特征参数提取非常有必要。 下面是基于MATLAB…

    python 2023年5月19日
    00
  • tf.truncated_normal与tf.random_normal的详细用法

    好的!首先我们来了解一下这两个函数的共同点:它们都是用于初始化神经网络中的权值的。 现在让我们分别看一下这两个函数的用法。 tf.truncated_normal tf.truncated_normal 可以生成截断正态分布随机数,即随机值生成的区间为 [μ-2σ, μ+2σ] 内的正态分布。其中,μ 为正态分布的均值,σ为正态分布的标准差。 函数定义: t…

    python 2023年6月3日
    00
  • 一文深入了解Python中的继承知识点

    一文深入了解Python中的继承知识点 1. 什么是继承? 继承是一种面向对象编程中常用的技术,它允许子类继承父类的属性和方法。子类可以使用父类的所有属性和方法,并且可以添加自己的属性和方法。 在Python中,继承使用class subclass(base_class):的形式实现。其中,subclass是子类名称,base_class是父类名称。 下面是…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部