毕业设计做网站前端昆明网站建设php

张小明 2025/12/26 17:32:32
毕业设计做网站前端,昆明网站建设php,网站改版建设方案,柳州网站建设psn118概念 什么是POM#xff1f; POM是PageObjectModule#xff08;页面对象模式#xff09;的缩写#xff0c;其目的是为了Web UI测试创建对象库。 在这种模式下#xff0c;应用涉及的每一个页面应该定义为一个单独的类#xff0c;类中应该包含此页面上的页面元素对象和处…概念什么是POMPOM是PageObjectModule页面对象模式的缩写其目的是为了WebUI测试创建对象库。在这种模式下应用涉及的每一个页面应该定义为一个单独的类类中应该包含此页面上的页面元素对象和处理这些元素对象所需要的方法等。将流程所关联的页面作为对象将对象串联起来形成一个个不同的流程POM是业内公认最佳的设计模式。POM的优点1PO提供了页面元素操作和业务流程相分离的模式可以使测试的代码结构比之前清晰可读性强。2更方便地复用对象和方法。3对象库是独立于测试用例的、统一的对象库可以通过集成不同的工具类来达到不同的测试目的。比如集成UnitTest可以用来做单元测试、自动化/功能测试同时也可以集成JBehave/Cucumber等来做验收测试。4使得整体自动化测试的优点变得更容易一些如果有某个页面的元素需要变更那么就可以直接更改封装好的页面元素类即可而不用更改调用它的其他测试类/代码。这样整个的代码维护成本也会缩减。PO的核心就是分层思想把同属于一个页面的元素都放在一个页面类中。简要结构设计逻辑代码基类实现所有工具函数封装类似于关键字驱动设计模式。页面对象代码基于系统页面通过调用工具函数来实现业务的操作生成对应的页面对象。测试代码基于测试需要组件页面对象实现核心流程的自动化执行测试用例。测试数据为测试用例的执行提供所需要的测试数据。POM完整框架Base层定义项目需要的基础方法特别是一些基础操作如元素click操作、sendkeys操作调用JavaScript脚本的方法和其他一些与基本浏览器相关的操作。Common层包含处理Excel文件的方法获取项目路径、测试系统URL的信息和框架执行相关日志功能的实现方法。Data层存放测试数据在这里可以维护测试数据这样存放是为了让项目的可维护性强、整体的条理性强。测试数据有时是自动化测试的驱动因素因此对Data的管理和维护就显的特别重要。Logs层存放项目在运行过程中产生的日志文件。PageObject层这里是PO的核心层该层不但涉及代码技术还涉及对项目业务的分析进而对项目的页面进行分析。Reports层存放项目执行过程中产生的测试报告文件测试报告是对测试结果的总结。TestCase层管理测试用例和执行测试相当于测试的总入口。config.ini整个项目需要用到的配置项。项目实战以百度搜索为例我们首先新建一个简单的项目结构base、data、page_object、cases如下图所示在base包下新建一个base_page.py文件在base_page.py文件下新建一个BasePage类作为基类提供各个常用的已封装好的函数便于后续的页面对象类进行调用。selenium中常用的函数元素定位、输入、点击、访问URL、等待、关闭等。代码如下 基类提供各个常用的已封装好的函数便于后续的页面对象类进行调用。 selenium中常用的函数:元素定位、输入、点击、访问URL、等待、关闭 from time import sleep from selenium import webdriver class BasePage: driver webdriver.Chrome() # 访问URL def visit(self, url): self.driver.get(url) # 元素定位 def locator(self, loc): return self.driver.find_element(*loc) # 输入 def input(self, loc, txt): self.locator(loc).send_keys(txt) # 点击 def click(self, loc): self.locator(loc).click() # 等待 def wait(self, time): sleep(time) # 关闭 def close(self): self.driver.quit()selenium中常用的函数:元素定位、输入、点击、访问URL、等待、关闭在page_object包下新建一个search_page.py文件在该文件下新建一个SearchPage类继承BasePage类调用基础类中的方法实现页面操作生成对应的页面对象。代码如下 百度查询页面搜索功能 from selenium.webdriver.common.by import By from base.base_page import BasePage from selenium import webdriver class SearchPage(BasePage): url http://www.baidu.com # 定位百度输入框 search_input (By.NAME, wd) # 定位百度一下按钮 search_button (By.ID, su) # 封装实现业务流程的函数 def search(self, txt): self.visit(self.url) self.wait(2) self.input(self.search_input, txt) self.wait(2) self.click(self.search_button)在cases包下新建一个testcase.py文件作为测试类实现在百度中分别搜索selenium、python代码如下 测试类 import unittest from page_object.search_page import SearchPage from selenium import webdriver class Case(unittest.TestCase): def test_search1(self): driver webdriver.Chrome() txt selenium SearchPage(driver).search(txt) def test_search2(self): driver webdriver.Chrome() txt python SearchPage(driver).search(txt) if __name__ __main__: unittest.main()运行以上代码发现因为创建了两次webdriver所以每运行一次代码都会打开一个Chrome浏览器同时代码中也存在冗余。优化方案可以增加classmethod作为前置条件和后置条件搜索的条件也可以采用数据驱动的方式完成提高代码的可读性与维护性。在data包下新建一个searchTXT.yaml文件存放搜索的内容如下优化之后代码如下 测试类 import unittest from page_object.search_page import SearchPage from selenium import webdriver import ddt ddt.ddt() class Case(unittest.TestCase): classmethod def setUpClass(cls) - None: cls.driver webdriver.Chrome() cls.se SearchPage(cls.driver) classmethod def tearDownClass(cls) - None: cls.driver.quit() ddt.file_data(../data/searchTXT.yaml) def test_search(self, txt): self.se.search(txt) if __name__ __main__: unittest.main()运行以上代码发现测试用例执行了四次分别搜索了selenium、python、java、php如此实现了数据驱动同时也在一个浏览器中完成了操作。后记以上简单的实现了POM的设计模式完成了基类、页面对象层、数据层、测试层的代码编写若读者有兴趣可以完成报告层、日志层等内容的编写最终实现完整的框架。最后作为一位过来人也是希望大家少走一些弯路在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈这些资料希望能给你前进的路上带来帮助。​视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

有网站有安全狗进不去了wordpress表单发邮件

在昇腾AI算子的生态中,Python与C的边界不是技术障碍而是工程选择。本文将带你深入Pybind11与Ascend C的融合之道,从底层内存对齐到高层API设计,构建一套既保持C性能又享受Python便利的算子调用体系。 目录 前言 一、 跨语言调用的认知升级&…

张小明 2025/12/26 17:31:59 网站建设

企业网站优化官网1000元能否做网站

第一章:Open-AutoGLM如何实现帮点咖啡在智能办公场景中,Open-AutoGLM 展现出强大的自动化能力,尤其在“帮点咖啡”这类日常任务中表现突出。通过自然语言理解与工作流编排的结合,系统能够接收用户指令,解析偏好&#x…

张小明 2025/12/26 17:31:26 网站建设

在服务器网站上做跳转页面跳转页面做视频网站设备需求

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 开发一个企业内网模拟器,以10.8.8.8为例,展示如何搭建安全的企业网络环境。包含VPN服务器配置、子网划分、防火墙规则设置等功能。要求提供分步指导和自动化…

张小明 2025/12/26 17:30:19 网站建设

微信链接网站怎么做的网站运营规划

还在为手动保存抖音视频而烦恼吗?每次都要重复操作,还要忍受烦人的水印?今天带你解锁一个超实用的技能——使用douyin-downloader批量下载抖音内容,让你从此告别繁琐操作! 【免费下载链接】douyin-downloader 项目地…

张小明 2025/12/26 17:29:13 网站建设

网站服务器问题网站备案怎么备案

UI-TARS坐标定位精度提升:5个立竿见影的实战技巧 【免费下载链接】UI-TARS 项目地址: https://gitcode.com/GitHub_Trending/ui/UI-TARS UI-TARS作为自动化GUI交互的先进工具,其核心能力之一就是精准的坐标定位。然而在实际开发中,许…

张小明 2025/12/26 17:28:39 网站建设

做psd模板下载网站新闻最近新闻10条

Excalidraw社区生态盘点:最受欢迎的第三方资源 在远程办公成为常态、敏捷协作深入研发流程的今天,团队对轻量级可视化工具的需求正以前所未有的速度增长。尤其是在技术讨论中——比如一次系统架构评审或产品原型脑暴——我们常常需要快速表达一个想法&a…

张小明 2025/12/26 17:28:04 网站建设