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

为了更好地讲解“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日

相关文章

  • Python爬虫实例——爬取美团美食数据

    这里是Python爬虫实例——爬取美团美食数据的完整攻略。 目录 前言 爬虫流程说明 代码实现 第一步:分析网页源码 第二步:获取网页信息 第三步:解析网页信息 第四步:保存数据 总结 前言 本篇文章将介绍如何使用Python爬虫爬取美团美食数据,爬取的内容包括美食店名、店铺评分、店铺地址和人均消费等信息。为了方便展示,我们将把数据保存成Excel表格,并在…

    python 2023年5月14日
    00
  • python 提取文件指定列的方法示例

    下面是关于“python 提取文件指定列的方法示例”的完整攻略。 1. 读取文件 首先,要读取需要的文件。在Python中,可以使用Pandas来读取文件。Pandas是Python中非常常用的数据处理库,它可以让你轻松地从文件中读取数据并转换为DataFrame,方便进行数据的操作和分析。 具体来说,可以使用Pandas中的read_csv()函数来读取C…

    python 2023年6月6日
    00
  • Python编程itertools模块处理可迭代集合相关函数

    Python编程中的itertools模块是一个处理可迭代集合的库,提供了各种函数可以方便地对可迭代集合进行处理。下面将介绍一些itertools模块中处理可迭代集合相关函数的使用攻略。 1. itertools.cycle函数 itertools.cycle函数通过让可迭代的seq无限循环来创建一个迭代器。示例代码如下: import itertools …

    python 2023年6月3日
    00
  • Python:分层切片

    【问题标题】:Python: Hierarchical SlicingPython:分层切片 【发布时间】:2023-04-04 03:45:01 【问题描述】: 是否有更 Pythonic/numpythonic 的方式来进行某种嵌套/分层切片,即更漂亮的版本: _sum = 0 for i in np.arange(n): _sum += someFun…

    Python开发 2023年4月6日
    00
  • 详解Python中打乱列表顺序random.shuffle()的使用方法

    详解Python中打乱列表顺序random.shuffle()的使用方法 介绍 random.shuffle()是Python内置模块random中的一个函数,可以将列表元素随机打乱。 语法 import random random.shuffle(list) 参数 参数list是待打乱顺序的列表。 返回值 该函数没有返回值,直接在原列表上进行修改。 示例一…

    python 2023年6月3日
    00
  • Django打印出在数据库中执行的语句问题

    一、简介 Django提供了一个非常好用的ORM,可以方便的操作数据库,但是有时候我们需要查看ORM生成的SQL语句,以便优化ORM的使用。本攻略将详细介绍如何在Django中打印执行的SQL语句。 二、打印SQL语句的方法 在Django中,打印出在数据库中执行的SQL语句非常简单,我们只需要在settings.py中设置DEBUG=True,然后在执行O…

    python 2023年5月13日
    00
  • 如何利用python脚本自动部署k8s

    如何利用python脚本自动部署k8s Kubernetes(k8s)是容器编排和管理平台,其能够自动化容器部署、扩展、以及应用服务的管理。在进行k8s平台的部署时,会经常使用脚本进行部署以及配置,下面将介绍如何使用Python脚本来实现k8s的自动化部署: 步骤1:安装必要的软件 Python脚本通常会使用到以下组件: Docker:用于构建和运行容器 k…

    python 2023年5月19日
    00
  • Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    下面我将详细讲解Python基于Pymssql模块实现连接SQL Server的方法: 1. 下载和安装Pymssql模块 在Python环境下,我们需要用到Pymssql这个模块,所以,首先,需要先安装Pymssql: pip install pymssql 2. 连接SQL Server数据库 连接SQL Server数据库需要以下参数: 服务器地址(h…

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