为了更好地讲解“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)
29 # 遍历解析后的测试数据,分别进行自动化测试
30 for data in test_data:
---> 31 test_login(data['username'], data['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技术站