2、编写测试脚本,练习从Excel导入测试数据,对TPShop网站进行登录/注册页面进行测试,通过断言,实现对Web网页的自动化测试;
时间: 2024-01-01 11:05:25 浏览: 27
好的,对于这个问题,我会给出一个简单的示例代码,但是需要注意的是,这个示例代码并不涉及到真正的TPShop网站,是基于一个本地的HTML文件进行测试的,仅供参考。
首先,假设我们有一个名为“test_data.xlsx”的Excel文件,其中包含了两个工作表,“login_data”和“register_data”,分别存储了登录页面和注册页面的测试数据。每个工作表的列分别为“username”、“password”、“expected_result”,其中“expected_result”列存储了预期结果。
接下来,我们使用Python的selenium库来模拟用户在网站上进行操作,并使用pandas库来读取测试数据。以下是示例代码:
```python
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
# 读取登录页面的测试数据
login_data = pd.read_excel('test_data.xlsx', sheet_name='login_data')
# 读取注册页面的测试数据
register_data = pd.read_excel('test_data.xlsx', sheet_name='register_data')
# 启动浏览器
driver = webdriver.Chrome()
# 打开登录页面
driver.get('file:///path/to/login.html')
# 逐一执行测试数据
for i, row in login_data.iterrows():
# 获取用户名和密码
username = row['username']
password = row['password']
expected_result = row['expected_result']
# 输入用户名和密码
driver.find_element_by_name('username').send_keys(username)
driver.find_element_by_name('password').send_keys(password)
# 点击登录按钮
driver.find_element_by_css_selector('button[type="submit"]').click()
# 等待页面加载完成
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.welcome')))
# 断言预期结果
assert expected_result in driver.page_source
# 返回登录页面
driver.back()
# 打开注册页面
driver.get('file:///path/to/register.html')
# 逐一执行测试数据
for i, row in register_data.iterrows():
# 获取用户名和密码
username = row['username']
password = row['password']
expected_result = row['expected_result']
# 输入用户名和密码
driver.find_element_by_name('username').send_keys(username)
driver.find_element_by_name('password').send_keys(password)
driver.find_element_by_name('confirm_password').send_keys(password)
# 点击注册按钮
driver.find_element_by_css_selector('button[type="submit"]').click()
# 等待页面加载完成
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.success')))
# 断言预期结果
assert expected_result in driver.page_source
# 返回注册页面
driver.back()
# 关闭浏览器
driver.quit()
```
这段代码会依次执行登录页面和注册页面的测试数据,并对每个测试数据执行以下操作:
1. 输入用户名和密码
2. 点击登录或注册按钮
3. 等待页面加载完成
4. 断言预期结果是否在页面源代码中
5. 返回登录或注册页面
需要注意的是,这个示例代码只是一个简单的示例,实际的测试脚本可能需要更多的代码来处理不同的测试场景,例如错误输入、验证码等。