当前位置: 首页 > wzjs >正文

自己做的网址危险网站seo教程最新

自己做的网址危险网站,seo教程最新,虚拟主机网站被挂马,邢台企业网站建设价格文章目录 一、什么是 POM二、如何基于 POM 进行自动化框架架构?1、base 层封装2、pageobjects 层封装3、TestCases 层封装 三、元素和方法分离&数据分离1、哪些部分可以进行分离2、示例代码 四、总结 一、什么是 POM POM page object model 页面对象模型 WEB 自…

文章目录

      • 一、什么是 POM
      • 二、如何基于 POM 进行自动化框架架构?
        • 1、base 层封装
        • 2、pageobjects 层封装
        • 3、TestCases 层封装
      • 三、元素和方法分离&数据分离
        • 1、哪些部分可以进行分离
        • 2、示例代码
      • 四、总结

一、什么是 POM

POM page object model 页面对象模型 WEB 自动化测试框架应用最为广泛的一种框架设计模式
设计思路: web 项目由很多页面组成,把每个页面当做页面对象来进行设计
Python 专题: 什么是对象?通过类描述一组对象 对象=属性+方法
某电商项目 = n 个 页面
登录页面=对每个页面设计对应页面类=相同属性+相同的方法
class LoginPage:
#属性?元素、页面标题…
#方法?你在页面进行操作/行为:点击、定位、输入…等等元素及页面的操作
每个页面有相同的属性及方法 比如:点击、输入、元素定位
基于 POM 进行设计分为四层进行架构:

  • 第一层 basepage 层 每个页面有相同的属性及方法 比如:点击、输入、元素定位
  • 第二层 pageobjects 层 针对每个页面定义页面类 每个页面有独有的属性及方法
    登录页面 LoginPage 类
    注册页面 RegisterPage 类
  • 第三层 TestCases 层 用例层包含项目的业务流程
  • 第四层 TestData 测试数据

二、如何基于 POM 进行自动化框架架构?

1、base 层封装
from selenium import webdriver
import timeclass BasePage:"""BasePage:定义每个页面的相同属性及方法相同属性?获取浏览器驱动对象(数据)相同方法?元素定位、点击、输入...等等操作"""def __init__(self,driver=webdriver.Edge()):self.driver = driverdef locator(self,loc):"""元素定位"""# 参数loc,里面包含两个参数# loc = (By.LINK_TEXT,'登录')# *loc,是把外面括号去掉,变成2个参数return self.driver.find_element(*loc) # WebElement 对象def input(self,loc,value):"""输入"""self.locator(loc).send_keys(value)def click(self,loc):"""点击"""self.locator(loc).click()def sleep(self,s):time.sleep(s)
2、pageobjects 层封装
from TestPOM.base.basepage import BasePage
from selenium.webdriver.common.by import By
class LoginPage(BasePage):"""登录页面类=页面独有的属性及方法页面独有的属性:页面元素定位方法:登录页面的操作"""# 登录页面的属性el_login = (By.XPATH, '//button[text()="登录"]')el_username = (By.NAME, "accounts")el_password = (By.XPATH, '//input[@type="password"]')url = "http://116.62.63.211/shop/user/logininfo.html"# 方法def login(self, username, password):# 实现登录步骤self.driver.get(self.url)self.sleep(1)# 输入用户名self.input(loc=self.el_username, value=username)# 输入密码self.input(loc=self.el_password, value=password)# 点击登录self.click(loc=self.el_login)self.sleep(1)
3、TestCases 层封装
import unittest
from TestPOM.pageobjects.webpage import LoginPageclass TestLogin(unittest.TestCase):def test_login(self):# 实例化对象loginPage = LoginPage()username = "hc_test"password = "hctest123"loginPage.login(username=username, password=password)

三、元素和方法分离&数据分离

1、哪些部分可以进行分离
  • 1、页面对象类-元素定位+方法再一次进行分离:元素定位层+业务流程层,更利于团队分工合作
  • 2、项目数据分离
    • a、项目的全局配置数据进行分离:项目地址/根地址、页面地址、数据库账号及地址、测试报告路径、数据路径
    • b、业务流程中的数据进行分离

2、示例代码

a、Global_Datas.py 项目的全局配置数据

# 根路径
base_url = "http://116.62.63.211/shop"
# 登录路径
login_url = base_url + "/user/logininfo.html"

b、login_datas.py 登录业务流程中的数据

success = ("hc_test","hctest123")
fail = ("hc_test","hctest123456")

c、login_page_loc.py 登录页面的定位元素:

from selenium.webdriver.common.by import By"""
登录页面类=页面独有的属性及方法
页面独有的属性:页面元素定位
方法:登录页面的操作
"""
class LoginPageLoc:el_login = (By.XPATH, '//button[text()="登录"]')el_username = (By.NAME, "accounts")el_password = (By.XPATH, '//input[@type="password"]')

d、login_page.py 登录页面的操作方法

from TestPOM.base.basepage import BasePage
from TestPOM.pagelocators.login_page_loc import LoginPageLoc as Locs
from TestPOM.testdatas import Global_Datas as GDatasfrom selenium.webdriver.common.by import By
class LoginPage(BasePage):# 方法def login(self, username, password):# 实现登录步骤self.driver.get(GDatas.login_url)self.sleep(1)# 输入用户名self.input(loc=Locs.el_username, value=username)# 输入密码self.input(loc=Locs.el_password, value=password)# 点击登录self.click(loc=Locs.el_login)self.sleep(1)

e、testcase_login.py 登录页面的用例

import unittest
from TestPOM.pageobjects.login_page import LoginPage
from TestPOM.testdatas import login_datas as ldclass TestLogin(unittest.TestCase):def test_login(self):# 实例化对象loginPage = LoginPage()loginPage.login(username=ld.success[0], password=ld.success[1])

四、总结

pom : 把每个页面或每个模块当做一个对象来进行编程 实现某个业务流程的测试=调用页面对象的一些属性及方法实现测试
数据驱动: 用外部数据驱动测试
关键字驱动: 所有业务流程封装成对应的函数 实现某个业务流程的测试=调用多个关键字
方法,实现业务流程的测试


文章转载自:

http://jtgOCEAQ.qmknL.cn
http://vOOSMha4.qmknL.cn
http://7ozB09Y0.qmknL.cn
http://1xHz91rB.qmknL.cn
http://Q1ApbQ7w.qmknL.cn
http://zdb6OlvG.qmknL.cn
http://C9xnrjHl.qmknL.cn
http://LPIiOkep.qmknL.cn
http://iym0iw6Q.qmknL.cn
http://mwD1RQKb.qmknL.cn
http://ojD0aVXY.qmknL.cn
http://byBupyIS.qmknL.cn
http://w7PBGmdQ.qmknL.cn
http://FmVCcTcz.qmknL.cn
http://cSmgVBzz.qmknL.cn
http://NbUmxXbc.qmknL.cn
http://eZ6vKbjD.qmknL.cn
http://gUCimgVF.qmknL.cn
http://e2g0wcrw.qmknL.cn
http://03zFKs07.qmknL.cn
http://HiMF5s4D.qmknL.cn
http://p8FhnT8v.qmknL.cn
http://pfKIhYHH.qmknL.cn
http://dwVaiFqx.qmknL.cn
http://4apL3QkR.qmknL.cn
http://SvcwV6qj.qmknL.cn
http://Re8m0FHM.qmknL.cn
http://tgEKgrl8.qmknL.cn
http://vhkXGGqN.qmknL.cn
http://bDWypBdj.qmknL.cn
http://www.dtcms.com/wzjs/666792.html

相关文章:

  • 婚恋网站建设技巧大连高新园区在哪
  • 专门做网站的公司有哪些做微商网站
  • 菏泽兼职网站建设做网站编程在程序
  • 图片展示类网站自己怎样做网站平台
  • 深圳的互联网公司排名绍兴seo
  • 校园资源共享网站建设工程资料外包公司
  • 安徽工程建设信息网站廊坊网站建设多少钱
  • 城市旅游网站开发福建省建设工程执业注册管理中心网站
  • 安装iis8 添加网站个人网站做cpa
  • 株洲网站的建设中色十二冶金建设集团有限公司网站
  • 做视频的网站有哪些陶瓷刀具网站策划书
  • 舞阳网站建设wordpress用什么开发工具
  • 怎么建立网站站点厦门网站建设公司电话
  • 池州市建设管理处网站邢台网络问政
  • 海淀区网站建设公司简历制作官网
  • 哈尔滨公司网站建设有没有做古装衣服的网站
  • 深圳团购网站设计价格百度推广登录入口官网网址
  • 山东青岛网站制作公司有园林案例的网站
  • 江门移动网站建设公司学技巧网站制作
  • 深圳网站推广优肥城市区seo关键词排名
  • 网站框架是谁做wordpress 博客同步
  • 昆明企业网站制作公司网站中信息更新怎么做的
  • 怎么查网站的备案号怎么注册wordpress账号
  • 重庆手机网站制作价格下载 asp网站
  • vps 网站打不开公司网站开发费用计入什么科目
  • php网站开发报告如何在网站做宣传
  • 建个什么网站深圳保障性住房价格
  • 长沙岳麓区没有网站可以做seo
  • 科技成果转化网站建设方案企业网站不备案会怎么样
  • 东莞企业建站公司网站域名费一年多少钱