selenium、unittest——POM框架并出报告
学习隔壁大神的POM框架,结合自己的用例进行修改整理并执行,操作遇到的主要问题是如何分布的写各个模块并统一运行,每个文件夹想要import里面的模块需要有__init__模块
POM主要分为三个部分,1、将selenium的基本操作写为自己的函数,2、将用例操作运用自己的操作函数写出步骤,3、加入unittest模块和报告模块,当然后还需要一个执行的主函数部分
#encoding=utf-8
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.implicitly_wait(30)
class Page(object):
def __init__(self, driver, base_url=u"http://www.baidu.com/"):
self.driver = driver
self.base_url = base_url
self.timeout = 30
def find_element(self, *loc):
return self.driver.find_element(*loc)
def input_clear(self,loc):
self.find_element(*loc).clear()
def input_text(self, loc, text):
self.find_element(*loc).send_keys(text)
def click(self, loc):
self.find_element(*loc).click()
def get_title(self):
return self.driver.title
from selenium.webdriver.common.by import By
from P.basePage import Page
reload(sys)
sys.setdefaultencoding("utf-8")
class SearchPage(Page):
search_input = (By.ID, u'kw')
search_button = (By.ID, u'su')
def __init__(self, driver, base_url=u"http://www.baidu.com/"):
Page.__init__(self, driver, base_url)
def gotoPage(self):
print u"打开首页: ", self.base_url
self.driver.get(self.base_url)
def input_search_clear(self):
print u"清除默认值 "
self.input_clear(self.search_input)
def input_search_text(self, text=u"自动化测试报告"):
print u"输入搜索关键字: 自动化测试报告 "
self.input_text(self.search_input, text)
def click_search_btn(self):
print u"点击 确定 按钮"
self.click(self.search_button)
#encoding=utf-8
import unittest
import sys,time
from selenium import webdriver
from P.searchPage import SearchPage
reload(sys)
sys.setdefaultencoding("utf-8")
# 百度搜索测试
class TestSearchPage(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def testSearch(self):
driver = self.driver
# 百度网址
url = u"http://www.baidu.com/"
# 搜索文本
text = u"自动化测试报告"
# 期望验证的标题
assert_title = u"自动化测试报告_百度搜索"
print assert_title
search_Page = SearchPage(driver, url)
# 启动浏览器,访问百度首页
search_Page.gotoPage()
#清空默认值
search_Page.input_search_clear()
# 输入 搜索词
search_Page.input_search_text(text)
# 单击 百度一下 按钮进行搜索
search_Page.click_search_btn()
time.sleep(2)
# 验证标题
self.assertEqual(search_Page.get_title(), assert_title)
def tearDown(self):
self.driver.quit()
断言结果正确
以上为POM框架,添加批量执行和报告
#encoding=utf-8
import unittest
import sys
import HTMLTestRunner
from O.testSearchPage import TestSearchPage
if __name__ == '__main__':
testunit = unittest.TestSuite()
testunit.addTest(TestSearchPage('testSearch'))
# 定义报告输出路径
htmlPath = u"page_demo_Report.html"
fp = file(htmlPath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u"baidu测试",
description=u"测试用例结果")
runner.run(testunit)
fp.close()
生成报告
selenium、unittest——POM框架并出报告的更多相关文章
- Python+Selenium ----unittest单元测试框架
unittest是一个单元测试框架,是Python编程的单元测试框架.有时候,也做叫做“PyUnit”,是Junit的Python语言版本.这里了解下,Junit是Java语言的单元测试框架,Java ...
- python + selenium + unittest 自动化测试框架 -- 入门篇
. 预置条件: 1. python已安装 2. pycharm已安装 3. selenium已安装 4. chrome.driver 驱动已下载 二.工程建立 1. New Project:建立自己的 ...
- Selenium+Python ---- 免登录、等待、unittest单元测试框架、PO模型
1.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Python+selenium之简单介绍unittest单元测试框架
Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...
- Python+Selenium框架设计篇之-简单介绍unittest单元测试框架
前面文章已经简单介绍了一些关于自动化测试框架的介绍,知道了什么是自动化测试框架,主要有哪些特点,基本组成部分等.在继续介绍框架设计之前,我们先来学习一个工具,叫unittest. unit ...
- Selenium基于Python web自动化基础二 -- 免登录、等待及unittest单元测试框架
一.免登录在进行测试的过程中难免会遇到登录的情况,给测试工作添加了工作量,本文仅提供一些思路供参考解决方式:手动请求中添加cookies.火狐的profile文件记录信息实现.人工介入.万能验证码.去 ...
- Selenium(十八):unittest单元测试框架(四) HTML测试报告
1. HTML测试报告 对测试人员来而言,测试的产出很难衡量.换句话说,测试人员的价值比较难以量化和评估,相信这一点对软件测试人员来说深有体会.我们花费了很多时间与精力所做的自动化测试也是如此.所以, ...
- Selenium(十七):unittest单元测试框架(三) 脚本分析、编写Web用例
1. 带unittest的脚本分析 也许你现在心里还有疑问,unittest框架与我们前面所编写的Web自动化测试之间有什么必然联系吗?当然有,既然unittest可以组织.运行测试用例,那么为什么不 ...
- <day002>Selenium基本操作+unittest测试框架
任务1:Selenium基本操作 from selenium import webdriver # 通用选择 from selenium.webdriver.common.by import By # ...
随机推荐
- WiFi密码忘记了怎么办之解决方案
随着科技不断进步,网络产品也越来越便宜了.家家户户基本上都有能力装上宽带. 但是有的时候,时间久了,我们可能会忘记密码(密码设置比较复杂的情况下).那么如何找到密码呢? 通常的办法有很多,百度或者Go ...
- AMQ(approximate membership queries)介绍
目录 简介 举例 Bloom Filter 算法过程 1)位数组: 2)添加元素,k个独立hash函数 3)判断元素是否存在集合 Quotient Filter and Cascade Filter ...
- WAPM环境配置(PHP入门2)
WAMP介绍 W:Window:开源免费 A:Apache:开源免费 M:MySQL:开源免费 P:PHP:开源免费 Apache下载 Apache下载地址:https://www.apachehau ...
- OpenID Connect Core 1.0(六)使用隐式验证流
3.2 使用隐式验证流(Authentication using the Implicit Flow) 本节描述如何使用隐式流程执行验证.使用隐式流程时,所有令牌从授权终结点返回:不使用令牌终结点返回 ...
- 利用PDCA工具改进周例会
PDCA简介 PDCA循环又叫戴明环,是美国质量管理专家休哈特博士首先提出的,由戴明采纳.宣传,获得普及,从而也被称为“戴明环”. PDCA最早用来解决全面质量管理问题,但是PDCA也可以用来作为一个 ...
- Unity各平台内置宏定义
属性 方法 UNITY_EDITOR #define directive for calling Unity Editor scripts from your game code. UNITY_EDI ...
- Oracle 表空间、段、区和块简述
数据块(Block) 数据块Block是Oracle存储数据信息的最小单位.注意,这里说的是Oracle环境下的最小单位.Oracle也就是通过数据块来屏蔽不同操作系统存储结构的差异.无论是Windo ...
- shiro使用框架,自定义过滤器
1.shiro配置文件配置 <!-- Shiro Filter --> <bean id="shiroFilter" class="org.apache ...
- PHP实现验证码功能
原文链接:http://www.qqdeveloper.com/a/54.html 什么是验证码? 借用百度的解释:验证码这个词最早是在2002年由卡内基梅隆大学的路易斯·冯·安.Manuel Blu ...
- python自动化学习
1.环境搭建 1.1 下载或拷贝整个PyAuthoTest到指定的目录,如D:\PyAuthoTest 1.2 安装Python2.7以及需要使用到的安装包列表如下 requests-2.10.0.t ...