Python+Selenium+Unittest实现PO模式web自动化框架(6)
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模块来做参数化,这样就不需要写多条登录失败的测试用例。
Python+Selenium+Unittest实现PO模式web自动化框架(6)的更多相关文章
- Python+Selenium+Unittest实现PO模式web自动化框架(1)
1.什么是PO模式? PO是Page Object的缩写 PO模式是自动化测试项目开发实践的最佳设计模式之一,讲页面定位和业务操作分开,也就是把对象的定位和测试脚本分开,从而提供可维护性. 主要有以下 ...
- Python+Selenium+Unittest实现PO模式web自动化框架(8)
1.main.py模块的功能 最后就是要有一个项目入口,并且是需要加载测试用例集. # --^_^-- coding:utf-8 --^_^-- # @Remark:运行入口 "" ...
- Python+Selenium+Unittest实现PO模式web自动化框架(2)
1.Common目录下的具体模块讲解. 2.basepage.py basepage.py模块里面是封装的对元素的操作.例如:查找元素.点击元素.文本输入等等. # --^_^-- coding:ut ...
- Python+Selenium+Unittest实现PO模式web自动化框架(4)
1.PageLocators目录下的具体模块 2.PageLocators目录下主要放置个页面的元素定位.用于统一管理个页面的定位元素. 例如:登录页面的元素定位login_page_locator. ...
- Python+Selenium+Unittest实现PO模式web自动化框架(7)
1.TestDatas目录的功能 TestDatas目录下存放的是测试数据,比如:登录功能的测试用例数据. # --^_^-- coding:utf-8 --^_^-- # @Remark:登录测试数 ...
- Python+Selenium+Unittest实现PO模式web自动化框架(5)
1.PageObjects目录下的模块 该目录下是存放各页面功能点. 比如:login_page.py模块下就是存放登录页面上的各个功能点的.(登录功能.获取登录失败的提示信息) # --^_^-- ...
- Python+Selenium+Unittest实现PO模式web自动化框架(3)
1.Outputs目录下的具体目录功能 2.logs目录 logs目录是用于存放log日志的一个目录. 2.reports目录 reports目录是用于存放测试报告的. 3.screenshots目录 ...
- python + selenium + unittest实现简单的UI自动化
使用的版本是python 3,其中HTMLTestRunner是修改版本,参考以下博客并下载 https://blog.csdn.net/zhanin123/article/details/78950 ...
- 【转】基于Selenium的web自动化框架(python)
1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台.跨浏览器的端到端的web自动化解决方案.Selenium主要包括三部分:Selenium IDE.Sel ...
随机推荐
- Python进阶——为什么GIL让多线程变得如此鸡肋?
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 做 Python 开发时,想必你肯定听过 GIL,它经常被 Python 程序员吐槽,说 Pytho ...
- kafka rebalance解决方案 -incremental cooperative协议和static membership功能
apache kafka的重平衡(rebalance),一直以来都为人诟病.因为重平衡过程会触发stop-the-world(STW),此时对应topic的资源都会处于不可用的状态.小规模的集群还好, ...
- NET 5 MemoryCache与Redis使用以及StackExchange.Redis和CSRedisCore
简介以及区别 ASP.NET Core 缓存Caching,.NET Core 中为我们提供了Caching 的组件. 目前Caching 组件提供了三种存储方式. Memory Redis SqlS ...
- 图灵学院java架构师vip课程第二期 完整版课程下载 无加密
部分目录2020年新图灵学院Java二期架构师教程下载[课程目录]├──一.VIP课程:互联网工程专题├──二.VIP课程:源码框架专题├──三.VIP课程:并发编程专题├──四.VIP课程:性能调优 ...
- 采购订单写入sap失败后,抛出自定义异常,回滚数据库
@Transactional(rollbackFor = Exception.class) @Override public Map<String,Object> getOderInfo( ...
- java电脑环境变量配置
ANT_HOME D:\apache-ant-1.9.11CLASSPATH %JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib;%JAVA_HOME%\l ...
- java动态代理实现与原理详细分析(转)
关于Java中的动态代理,我们首先需要了解的是一种常用的设计模式--代理模式,而对于代理,根据创建代理类的时间点,又可以分为静态代理和动态代理. 一.代理模式 代理模式是常用的java设计模式, ...
- [leetcode]罗马数字和阿拉伯数字相互转换
罗马转阿拉伯 public int romanToInt(String s) { /* 从左到右依次根据哈希表进行加法 如果是"CM"900这种情况就要执行+M和-C处理 */ i ...
- SpringBoot官网提供所有组件整理
下面所有SpringBoot组件整理来自于:https://start.spring.io/,紧随Spring社区的步伐...... Developer Tools Spring Boot DevTo ...
- 效率工具 | 快速创建虚拟机,Vagrant真香!
Vagrant 是一个基于Ruby的工具,主要用于创建和部署虚拟化开发环境.它以来于Oracle的开源VirtualBox虚拟化系统,通过使用 Chef创建自动化虚拟环境. Vagrant 主要的功能 ...