文章目录
- 一、PO模式学习过程(版本迭代)
- 二、面向过程编码
-
- [2.1 test_login_account_not_exist.py](#2.1 test_login_account_not_exist.py)
- [2.2 test_login_password_error.py](#2.2 test_login_password_error.py)
一、PO模式学习过程(版本迭代)
- version_01:面向过程的编码形式
- verison_02:pytest单元测试框架引入
- version_03:引入python封装思维
- version_04:Page Object页面封装PO
- version_05:Page Object封装的优化(二次封装的引入,涉及继承)
- version_06:引入数据驱动
yacas
确认案例:登录案例--> 登录失败(账户不存在)、登录失败(密码错误)

二、面向过程编码
1、确认场景
2、面向过程脚本编写
3、发现问题
- 测试用例文件不方便维护
- 代码大量的冗余
- 无断言、无测试报告
yacas
version_01
- 不使用任何设计模式和单元测试框架。
- 每个文件里编写一个用例, 完全的面向过程的编程方式。
version_01-存在的问题
- 无法批量运行:一条测试用例对应一个文件, 用例较多时不方便管理维护
- 代码高度冗余
- 没有断言
- 不能自动生成测试报告
version_01(包)
- __init__.py
- test_login_account_not_exist.py(账户不存在)
- test_login_password_error.py(密码错误)
2.1 test_login_account_not_exist.py
python
# 1、导包
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
# 2、打开浏览器 --创建浏览器驱动对象
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(30)
# 3、打开测试网址url
driver.get("https://hmshop-test.itheima.net/")
# 4、暂停3s ->代替测试步骤
# a。使用Xpath 文本定位策略定位登录超链接,并点击
driver.find_element_by_xpath("//*[text()='登录']").click()
# b。使用Xpath 属性定位策略定位用户名输入框,并输入13600001111
driver.find_element_by_xpath("//*[@id='username']").send_keys("13611111111")
# c。使用Xpath 属性包含定位策略定位密码输入框,并输入123456
driver.find_element_by_xpath("//*[contains(@id,'pass')]").send_keys("123456")
# d。使用Xpath 属性与逻辑结合策略定位验证码输入框,并输入8888
driver.find_element_by_xpath('//*[@placeholder="验证码" and @id="verify_code"]').send_keys("8888")
# e。使用Xpath 层级与属性结合策略定位登录按钮,并点击;
driver.find_element_by_xpath("//*[@class='login_bnt']/a").click()
sleep(2)
# 获取错误提示信息
msg = driver.find_element(By.CSS_SELECTOR, ".layui-layer-content").text
print("msg:", msg)
# 断言
assert msg == "账号不存在!"
# 点击提示框确定按钮
driver.find_element_by_css_selector(".layui-layer-btn0").click()
# 关闭
sleep(3)
driver.quit()
2.2 test_login_password_error.py
python
# 1、导包
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
# 2、打开浏览器 --创建浏览器驱动对象
driver = webdriver.Chrome()
# 最大化浏览器
driver.maximize_window()
# 隐式等待
driver.implicitly_wait(30)
# 3、打开测试网址url
driver.get("https://hmshop-test.itheima.net/")
# 4、暂停3s ->代替测试步骤
# a。使用Xpath 文本定位策略定位登录超链接,并点击
driver.find_element_by_xpath("//*[text()='登录']").click()
# b。使用Xpath 属性定位策略定位用户名输入框,并输入13600001111
driver.find_element_by_xpath("//*[@id='username']").send_keys("13600001111")
# c。使用Xpath 属性包含定位策略定位密码输入框,并输入123456
driver.find_element_by_xpath("//*[contains(@id,'pass')]").send_keys("error")
# d。使用Xpath 属性与逻辑结合策略定位验证码输入框,并输入8888
driver.find_element_by_xpath('//*[@placeholder="验证码" and @id="verify_code"]').send_keys("8888")
# e。使用Xpath 层级与属性结合策略定位登录按钮,并点击;
driver.find_element_by_xpath("//*[@class='login_bnt']/a").click()
sleep(2)
# 获取错误提示信息
msg = driver.find_element(By.CSS_SELECTOR, ".layui-layer-content").text
print("msg:", msg)
# 断言
assert msg == "密码错误!"
# 点击提示框确定按钮
driver.find_element_by_css_selector(".layui-layer-btn0").click()
# 关闭
sleep(3)
driver.quit()
