Python+Selenium+Unittest实现PO模式web自动化框架(6)
2024-09-08 09:50:01
1.TestCases目录下的模块
TestCases目录下是存放测试用例的目录。
TestCases目录下的测试用例采用unittest框架来构建。
例如:登录功能的测试用例。(test_1_login.py)
# --^_^-- coding:utf-8 --^_^--
# @Remark:测试登录功能 import unittest
from selenium import webdriver
from PageObjects.login.login_page import LoginPage
from PageObjects.home.home_page import HomePage
from TestDatas import login_datas as ld
from TestDatas import Comm_Datas as cd
from Common import logger
import logging
import ddt
import time @ddt.ddt
class TestLogin(unittest.TestCase):
@classmethod
def setUpClass(cls):
# 前置:打开浏览器,登录网页
cls.driver = webdriver.Chrome()
cls.driver.maximize_window()
cls.driver.get(cd.web_login_url)
cls.lp = LoginPage(cls.driver) # 刷新一下当前页面
def tearDown(self):
self.driver.refresh() # 正常用例
def test_login_2_success(self):
logging.info("*********登录用例:正常场景-登录成功*********")
# 步骤:登录页面-登录操作
self.lp.login(ld.success_data["user"], ld.success_data["pwd"])
time.sleep(3)
# 断言:首页-【今日事务】这个元素存在
self.assertTrue(HomePage(self.driver).check_login_ele_exists()) # 异常用例
@ddt.data(*ld.wrong_datas)
def test_login_1_error(self, data):
time.sleep(2)
logging.info("*********登录用例:异常场景-登录失败*********")
self.lp.login(data["user"], data["pwd"])
time.sleep(2)
# 断言:判断提示信息是否一致
self.assertEqual(data["check"],LoginPage(self.driver).get_errorMsg()) @classmethod
def tearDownClass(cls):
# 后置:关闭浏览器
cls.driver.quit()
登录的用例函数,只需要调用在PageObjects目录下登录页面的登录功能即可,而不需要再次编写元素定位和元素操作。
登录的用例分成登录成功和登录失败的用例,登录失败有(用户名错误,密码错误)等情况,但是参数就只有用户名和密码,只不过值发生变化,所以可以用ddt模块来做参数化,这样就不需要写多条登录失败的测试用例。
最新文章
- oc中的枚举定义
- SQL数据库基础(八)
- Js 获取当前时间
- sql执行计划
- [DEncrypt] RSACryption--RSA加密/解密字符串 (转载)
- (转载)Javascript 进阶 作用域 作用域链
- 魅蓝Note有几种颜色 魅蓝Note哪个颜色好看
- Unity3D-游戏中的技能碰撞检测
- Windows 2012建立域控(AD DS)详解
- hive新特性reflect函数介绍
- boto3库限速
- Shell脚本学习 - 基本内容以及数据格式
- qt之fiddler抓包
- java分布式电子商务云平台b2b b2c o2o需要准备哪些技术??
- [ 10.4 ]CF每日一题系列—— 486C
- [UE4]Safe Zone:安全区域
- 651. 4 Keys Keyboard复制粘贴获得的最大长度
- 入坑tensorflow
- java常量
- (转)MVC语法-基础