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 ...
随机推荐
- 部署docker镜像仓库及高可用
下载地址: https://github.com/goharbor/harbor/releases 安装harbor服务器: 安装harbor root@harbor-vm1:/usr/loc ...
- wildfly 21的domain配置
目录 简介 wildfly模式简介 domain controller的配置 Host controller的配置文件 忽略域范围的资源 Server groups Servers 总结 简介 wil ...
- [.NET] WCFDataService项目host到IIS上碰到的一个问题:数据库未能打开
今天在尝试重现OP一个问题的,遇到了一个新的问题. 项目坏境: WCF Data Service 5.6 Entity Framewrok 5(不用6的原因时要重新配置WCF项目) SQL Serve ...
- Java学习_面向对象编程
抽象类 一个class定义了方法,但没有具体执行代码,这个方法就是抽象方法,抽象方法用abstract修饰.因为抽象类本身被设计成只能用于被继承,因此,抽象类可以强迫子类实现其定义的抽象方法,否则编译 ...
- 为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector
注:本系列文章中用到的jdk版本均为java8 相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector.但是现在用到的线程安全的List一般都会用CopyOnWriteArr ...
- 《C++ 程序设计》读书笔记
本文联合编辑:小辣辣.向她致以最崇高的敬(爱)意 第一章 C++的初步认识 在程序进行编译时,先对所有的预处理命令进行处理,将头文件的具体内容代替 #include 指令,然后再对该程序单元进行整体编 ...
- laravel 数据库之DB类
// 取回数据表的第一条数据 DB::table('table')->where('key', 'value')->first(); DB::table('table')->firs ...
- 关于BackTop按钮的实现
今天在处理,首页面的制作的时候,在实现backtop按键的时候,有些思路,作为记录. 功能为,点击backtop即可,立马跳到首页的最上面,且backtop只有在页面后1/2处才显示出来. 首先,我们 ...
- Label_strange_labels
空格符号 特殊符号名 注释语句 , align = "left right center" 粗体 斜体 也可能是控制标签 上标 下标 大字号 小字号 下划线 删除线 等宽 键盘输 ...
- 在mapper.xml映射文件中添加中文注释报错
问题描述: 在写mapper.xml文件时,想给操作数据库语句添加一些中文注释,添加后运行报如下错误: 思考 可能是写了中文注释,编译器在解析xml文件时,未能成功转码,从而导致乱码.但是文件开头也采 ...