一、PageObject 页面对象设计模式  (一个页面建一个类,即对象,页面对象)

每个页面都建对应的class,类中包含了页面的输入框、标题、元素等元素,测试代码中测试这个页面时,只需要调用这个页面类(页面对象)里的页面元素即可,这样实现了将测试对象(页面对象)和测试脚本(用例脚本)分离,如果元素ID等发生变化时,不需要去修改测试代码,只需要在页面类中修改即可,利于维护所有脚本。

页面对象设计模式可分为三层:

1、基础层:driver,findelement,findelements
2、对象层:里面封装元素属性、点击鼠标、点登录等操作,需继承基础层,;
3、测试层:调用对象层封装的(操作)方法;真正的实例化driver

二、PageObject 页面对象模式将元素属性和业务操作分离出去,具体的业务功能需要这些操作时,调用即可

对象层DBobject.py代码如下:(模块中类baidu需继承基础层类Jichu)

#!/usr/bin/env.python
#-*-coding:utf-8-*-
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException class jichu(object): def __init__(self,driver):
self.driver=driver def findelement(self,*loc):
return self.driver.find_element(*loc) def findelements(self,*loc):
try:
return self.driver.find_elements(*loc)
except NoSuchElementException as e:
print 'Error details:%s'%(e.args[0]) class baidu(jichu):
textlogin_loc=(By.LINK_TEXT,u'登录')
buttonlogin_loc=(By.ID,'TANGRAM__PSP_10__submit')
uname_loc=(By.ID,'TANGRAM__PSP_10__userName')
pw_loc=(By.ID,'TANGRAM__PSP_10__submit')
error_loc=(By.ID,'TANGRAM__PSP_10__error') def clicklogin(self):
self.findelement(*self.textlogin_loc).click() def typeuname(self):
self.findelement(*self.uname_loc).send_keys('') def typepw(self):
self.findelement(*self.pw_loc).send_keys('') def clickbutton(self):
self.findelement(*self.buttonlogin_loc).click() def geterror(self):
return self.findelement(*self.error_loc).text

百度登录模块baiduLogin.py的业务功能代码:

#!/usr/bin/env.python
#-*-coding:utf-8-*-
from BDobject import *
import unittest
import os
from selenium import webdriver class login(unittest.TestCase,baidu):
@classmethod
def setUp(cls):
cls.driver = webdriver.Firefox()
cls.driver.maximize_window()
cls.driver.implicitly_wait(30)
cls.driver.get('https://www.baidu.com/') def test01(self):
'''验证用户名和密码为空时,系统的提示信息是否正确'''
self.clicklogin()
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[0]) def test02(self):
'''验证输入用户名,不输入密码时,系统的提示信息是否正确'''
self.clicklogin()
self.typeuname()
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[1]) def test03(self):
'''验证只输入密码时,系统的提示信息是否正确'''
self.clicklogin()
self.typepw()
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[2]) def test04(self):
'''验证输入账户和密码后点击登录,系统的提示信息是否正确'''
self.clicklogin()
self.typeuname()
self.typepw()
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[1]) @classmethod
def tearDown(cls):
cls.driver.quit() @staticmethod
def suite():
suite = unittest.TestSuite()
with open(os.path.join(os.path.dirname(__file__), 'case1.txt'), 'r') as f1:
for item in (''.join(f1.readlines())).split('\n'):
suite.addTest(login(item))
return suite def readlog(self):
list1 = []
with open(os.path.join(os.path.dirname(__file__) + '/log1.txt'), 'r') as f:
for item in (''.join(f.readlines())).split('\n'):
list1.append(item)
return list1 if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(login.suite())

log1.txt  内容:

aaarticlea/png;base64,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" alt="" />

case1.txt内容:

aaarticlea/png;base64,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" alt="" />

三、页面对象设计模式的应用

以测试百度登录模块、百度页面title、百度页面url为例,测试三个模块,且生成测试报告

-------将打开关闭浏览器分离出去,测试模块使用时倒入并继承 browser.py

#!/usr/bin/env.python
#-*-coding:utf-8-*- from selenium import webdriver
import unittest class webUi(unittest.TestCase): @classmethod
def setUpClass(cls):
cls.driver=webdriver.Firefox()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
cls.driver.get('https://www.baidu.com/') @classmethod
def tearDownClass(cls):
cls.driver.quit()

-------对象层BDobject.py

#!/usr/bin/env.python
#-*-coding:utf-8-*-
from selenium.webdriver.common.by import By
from selenium.common.exceptions import NoSuchElementException class jichu(object): def __init__(self,driver):
self.driver=driver def findelement(self,*loc):
return self.driver.find_element(*loc) def findelements(self,*loc):
try:
return self.driver.find_elements(*loc)
except NoSuchElementException as e:
print 'Error details:%s'%(e.args[0]) class baidu(jichu):
textlogin_loc=(By.LINK_TEXT,u'登录')
buttonlogin_loc=(By.ID,'TANGRAM__PSP_10__submit')
uname_loc=(By.ID,'TANGRAM__PSP_10__userName')
pw_loc=(By.ID,'TANGRAM__PSP_10__submit')
error_loc=(By.ID,'TANGRAM__PSP_10__error') def clicklogin(self):
self.findelement(*self.textlogin_loc).click() def typeuname(self,name):
self.findelement(*self.uname_loc).send_keys(name) def typepw(self,pw):
self.findelement(*self.pw_loc).send_keys(pw) def clickbutton(self):
self.findelement(*self.buttonlogin_loc).click() def geterror(self):
return self.findelement(*self.error_loc).text

-------百度登录模块测试用例logintest.py

#!/usr/bin/env.python
#-*-coding:utf-8-*-
from selenium import webdriver
from browser import *
from BDobject import *
import unittest
import os class login(webUi,baidu): def test01(self):
'''验证用户名和密码为空时,系统的提示信息是否正确'''
self.clicklogin()
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[0]) def test02(self):
'''验证输入用户名,不输入密码时,系统的提示信息是否正确'''
#self.clicklogin()
self.typeuname('')
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[1]) def test03(self):
'''验证只输入密码时,系统的提示信息是否正确'''
#self.clicklogin()
self.typepw('')
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[2]) def test04(self):
'''验证输入账户和密码后点击登录,系统的提示信息是否正确'''
#self.clicklogin()
self.typeuname('')
self.typepw('')
self.clickbutton()
text = self.geterror()
self.assertEqual(text.encode('utf-8'), self.readlog()[1]) def readlog(self):
'''读取文件里的内容'''
list1 = []
with open(os.path.join(os.path.dirname(__file__) + '/log1.txt'), 'r') as f:
for item in (''.join(f.readlines())).split('\n'):
list1.append(item)
return list1

-----测试百度首页title测试用例 titletest.py

#!/usr/bin/env.python
#-*-coding:utf-8-*-
from selenium import webdriver
import unittest
from browser import *
from BDobject import * class title1(webUi): def test01(self):
'''验证百度首页的title'''
title = self.driver.title
self.assertEqual(title.encode('utf-8'), u'百度一下,你就知道')

-----测试百度首页url测试用例urletest.py

#!/usr/bin/env.python
#-*-coding:utf-8-*-
from selenium import webdriver
import unittest
from browser import *
from BDobject import * class title1(webUi): def test01(self):
'''验证百度首页的URL'''
url=self.driver.current_url
self.assertEqual(url.encode('utf-8'),u'https://www.baidu.com/')

-----使用discover加载所有测试模块,并生成测试报告alltest.py

#!/usr/bin/env.python
#-*-coding:utf-8-*-
import os
import HTMLTestRunner
import unittest
import time
import sys
reload(sys)
sys.setdefaultencoding('utf-8') def suite():
suite=unittest.defaultTestLoader.discover(
start_dir=os.path.dirname(__file__),
pattern='*test.py',
top_level_dir=None
)
return suite if __name__=='__main__':
fp=open(os.path.join(os.path.dirname(__file__),'testmodel','testReport1.html'),'wb')
runner=HTMLTestRunner.HTMLTestRunner(
stream=fp,
title='all model testReport',
description='三个模块的测试报告'
)
runner.run(suite())

三个测试模块的目录如图:

aaarticlea/png;base64,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" alt="" />

测试报告截图:

PageObject 页面对象模式的更多相关文章

  1. Selenium(Python)PageObject页面对象

    使用PageObject页面对象的好处是, 当页面元素的位置发生改变时, 只需要去修改Xpath或者ID, 而不用去修改测试用例本身: 本次的思路是: 1.常用方法类 2.页面对象类 3.测试用例类 ...

  2. PO页面对象模式封装

    PO的主要价值体现在对界面交互细节的封装,这样可以使测试案例可以更关注与业务而非界面细节,提高测试案例的可读性.   以传统的登陆页面为例實現PO模式,因为每个用例中都需要登陆. 其中需要使用Page ...

  3. PageObjec页面对象模式(理论)

    ui自动化测试的分层思想:实现测试数据与业务数据分离 1. 基础层 2. 对象层:每个页面的操作元素封装为一个文件 3.测试用例层:调用对象层封装的方法进行测试用例编写

  4. 页面对象(Page Object)模式

    内容转载自 https://www.cnblogs.com/yytesting/p/6973474.html 页面对象(Page Object)模式是目前自动化测试领域普遍使用的设计模式之一,此模式可 ...

  5. 5.8 页面对象(Page Object)模式

    页面对象(Page Object)模式是目前自动化测试领域普遍使用的设计模式之一,此模式可以大大提高测试代码的复用率,提高测试脚本的编写效率和维护效率,是中级自动化测试工程师的必备技能之一. 1.页面 ...

  6. [译]Selenium Python文档:六、页面对象

    本章是介绍页面对象设计模式的教程.一个页面对象代表了web应用用户接口的一片区域,你的测试代码将与之交互的. 使用页面对象模式的好处: 可以创建在多个测试样例中都可使用的可重用代码 减少重复性代码 如 ...

  7. JS设计模式(三) 数据访问对象模式

    引言 HTML5 提供了两种在客户端存储数据的新方法:localStorage.sessionStorage,他们是Web Storage API 提供的两种存储机制,区别在于前者属于永久性存储,而后 ...

  8. Selenium(Python)页面对象+数据驱动测试框架

    整个工程的目录结构: 常用方法类: class SeleniumMethod(object): # 封装Selenium常用方法 def __init__(self, driver): self.dr ...

  9. selenium从入门到应用 - 5,页面对象设计模式下的页面模块

    本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下 ...

随机推荐

  1. hibernate映射配置

    1. 普通字段类型 2. 主键映射 单列主键映射 多列作为主键映射 主键生成策略,查看api:   5.1.2.2.1. Various additional generators 数据库: Q:一个 ...

  2. linux用户和组账户管理

    linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源.系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰. 用户账户 A.普通用户账户:普通 ...

  3. kubernetes学习:CKA考试题

    1. 列出环境内所有的pv 并以 name字段排序(使用kubectl自带排序功能) kubectl get pv --sort-by=.metadata.name 2. 列出指定pod的日志中状态为 ...

  4. (“(null)” is of a model that is not supported by this version of Xcode. Please...)

    真机测试遇到以下问题: (还以为手机不支持Xcode的版本呢) 解决方法: 发现只要将XCode重启后就可以真机运行了,碰见这个问题的朋友可以试下,我反正是被坑了半小时...

  5. 【转】zookeeper之 zkServer.sh命令、zkCli.sh命令、四字命令

    [FROM]https://www.cnblogs.com/andy6/p/7674028.html 一.zkServer.sh 1.查看 zkServer.sh 帮助信息 [root@bigdata ...

  6. 聊聊GO-REDIS的一些高级用法

    1. 前言 说到Golang的Redis库,用到最多的恐怕是redigo 和 go-redis.其中 redigo 不支持对集群的访问.本文想聊聊go-redis 2个高级用法 2. 开启对Clust ...

  7. ApiDoc 后端接口注释文档的使用

    前端和后端注释文档生成 前端和后端的 函数及api 说明文档生成总结,持续更新中 by Qzx 参考网址 jsDoc - 中文说明 jsDoc 使用教程 后台接口文档生成器 - APIDOC官网 ap ...

  8. SqlServer数据库查看被锁表以及解锁Kill杀死进程

    步骤1.查看锁表进程        2.杀死进程 --1.查询锁表进程 spid.和被锁表名称 tableName select request_session_id spid,OBJECT_NAME ...

  9. 数据测试003:利用Jmeter推送测试数据(下)

    数据测试003:利用Jmeter推送测试数据(中) 今天继续学习用Jmeter推送数据,这次换Oracle数据 1)安装jdbc驱动,对应自己数据库安装的版本,我的是11g的,安装目录是在Jmeter ...

  10. 【HANA系列】SAP HANA SQL获取字符串长度

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA SQL获取字符 ...