Python + selenium 自动化测试----读取CSV文档中的测试数据

13 篇文章 11 订阅
11 篇文章 4 订阅

一、搭建自动化测试框架

自动化测试框架

二、读取测试数据文件(common)

1.先配置测试数据文件,确定好测试数据文件的格式:

推荐的: 一个输入对应一列, 一行对应一个测试用例的数据。
例如:登录的测试数据

Username,passwd  #(表头,列的解释)一般都是放在第一行,也可以放在最后一行
aaaa,123456
bbbb,123456
cccc,123456

备注
1、一旦测试数据文件的格式定好,必须要统一,每个功能的测试数据要符合统一格式
2、测试数据文件的类型建议是csv。 当然也可以是其他的:.xls

csv的优势:
A)csv本质上是文本文件,处理起来简单。 在python中自带了一个库csv库,专门用来处理csv文件的。
B)csv可以是用excel打开。编辑维护也很方便。
C)csv中列的分隔符是英文半角的逗号

2.写通用的代码来读取测试文件中的内容

思路:

A)先找到测试数据文件(路径+文件名.csv),如
data_path = os.path.join(os.path.dirname(__file__),"..","..","config",file_name)
#B)打开这个文件(with  open);目的:是为了读取内容 ,如(as:重命名)
with open(data_path,"r",encoding="utf8") as file_data:
#C)使用读取测试数据文件中的内容
file_value = csv.reader(file_data)
#D)把读取到的内容转换成python中的列表
list_file = list(file_value)[line]
#E)把读取到的内容返回出去,(按行返回,1行就表示1个用例)
return list_file

![在这里插入图片描述](https://img-blog.csdnimg.cn/7569c61bf2a145faa6ff8e3eaf282f32.png

三、读取配置信息文件:

1.先确定配置文件的格式;

推荐的:建议配置成字典格式 ; 配置到csv文件中
配置成2列: 第一列是key(自定义的) 第二列是value (正确的)
例如: 配置db.csv
Host,localhost
Port,13306
Username,root
Passwd,xxxxxx
dbName,xxxxxx
Key,value

也可以配置成跟测试数据一种格式; 第二个方法不用写。直接用第一个方法即可。
Localhost,13306,root,xxxxxx,xxxxxx
Host,port,username,passwd,dbname

2.写代码来读取配置文件中的内容

思路:

#A)先找到配置文件
url_path = os.path.join(os.path.dirname(__file__), "..", "..", "data", file_name)
#B)打开这个配置文件,目的:r  
with open(url_path, "r", encoding="utf8") as file_data:
#C)读取这个配置文件中的内容:csv库
file_value = csv.reader(file_data)
#D)把读取到的内容变成字典
dict_file = dict(file_value)
#E)返回这个字典信息;所有一起返回
return list_file

在这里插入图片描述

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 好的,以下是一个使用Python UI自动化工具Selenium实现自动化测试示例,用于对CSV文件数据进行读取和验证。 首先,需要安装Selenium和Chrome浏览器,并下载Chrome浏览器对应的WebDriver。 接下来,可以使用以下Python代码来读取CSV文件数据,并使用Selenium来打开网站并自动填充表单,验证CSV文件数据是否正确。 ```python from selenium import webdriver import csv # 打开CSV文件读取数据 with open('data.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader: username = row['username'] password = row['password'] # 使用Selenium打开网站并自动填充表单 driver = webdriver.Chrome('/path/to/chromedriver') driver.get('https://www.example.com/login') username_field = driver.find_element_by_name('username') password_field = driver.find_element_by_name('password') username_field.send_keys(username) password_field.send_keys(password) driver.find_element_by_css_selector('button[type="submit"]').click() # 验证登录是否成功 if driver.current_url == 'https://www.example.com/dashboard': print('登录成功') else: print('登录失败') driver.quit() ``` 在这个示例,我们假设CSV文件有两列数据:username和password,分别用于填充登录表单的用户名和密码字段。程序会依次读取每一行数据,并使用Selenium自动化工具打开网站、填充表单并提交登录请求。最后,程序会检查登录是否成功,并输出结果。 请注意,在实际应用,您需要根据具体的需求和网站的特点,修改示例代码的网站URL、表单字段名称等参数,以确保代码能够正确地运行。 ### 回答2: 面向对象编程是一种程序设计方法,可以将逻辑代码封装成可重用的类和对象。Python是一门强大的编程语言,可以用于编写自动化测试脚本,包括UI自动化测试。下面是一个使用Python进行UI自动化登录测试实例,其用到了面向对象的思想和调用CSV文件数据: ```python import csv class LoginPage: def __init__(self, driver): self.driver = driver def enter_username(self, username): username_input = self.driver.find_element("id", "username") username_input.clear() username_input.send_keys(username) def enter_password(self, password): password_input = self.driver.find_element("id", "password") password_input.clear() password_input.send_keys(password) def click_login_button(self): login_button = self.driver.find_element("id", "login") login_button.click() def login(self, username, password): self.enter_username(username) self.enter_password(password) self.click_login_button() def read_csv_data(file_path): data = [] with open(file_path, "r") as file: reader = csv.reader(file) for row in reader: data.append(row) return data def main(): # 读取CSV文件测试数据 test_data = read_csv_data("login_test_data.csv") # 启动浏览器 driver = webdriver.Chrome() # 实例化LoginPage类 login_page = LoginPage(driver) # 执行登录测试 for data in test_data: username = data[0] password = data[1] login_page.login(username, password) # 在这里可以添加验证登录是否成功的代码 # 关闭浏览器 driver.quit() if __name__ == "__main__": main() ``` 以上代码通过创建LoginPage类来封装页面操作,包括输入用户名、密码和点击登录按钮。使用`read_csv_data`函数读取CSV文件测试数据,并且在`main`函数数据传递给`login_page`实例的`login`方法进行登录测试。可以根据实际需要添加验证登录是否成功的代码。 ### 回答3: 当我们进行UI自动化测试时,经常需要从外部文件读取数据进行测试。一种常见的情况是使用CSV文件作为测试数据的存储方式。Python的Pandas库提供了一种方便而强大的方法来处理CSV文件,并且结合面向对象编程的思想,可以更好地管理测试数据。 我们可以创建一个名为"LoginTest"的类,用于执行登录测试。首先,我们创建一个"login.csv"的CSV文件,用于存储用户名和密码的测试数据,如下所示: ``` username,password testuser1,password1 testuser2,password2 testuser3,password3 ``` 然后,在"LoginTest"类,我们使用Pandas库来读取CSV文件数据,并通过调用面向对象的方法使用这些数据进行测试。 ```python import pandas as pd class LoginTest: def __init__(self): self.data = pd.read_csv("login.csv") def login(self, username, password): # 执行登录逻辑 print(f"Logging in with username: {username} and password: {password}") def run_tests(self): for index, row in self.data.iterrows(): username = row["username"] password = row["password"] self.login(username, password) # 创建LoginTest对象并执行测试 test = LoginTest() test.run_tests() ``` 在上述代码,我们首先在类的构造函数使用Pandas的"read_csv"方法来读取CSV文件的内容并将其存储到"data"变量。然后,我们使用"data"变量数据执行登录逻辑,将用户名和密码作为参数传递给"login"方法。最后,我们使用"run_tests"方法遍历读取数据,并依次调用"login"方法进行测试。 以上是一个简单的例子,演示了如何使用面向对象的方法调用CSV文件数据进行UI自动化登录测试。你可以根据实际需要扩展该类的功能,以适应更复杂的测试场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@chameleon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值