自动化测试教程(22)使用PO设计模式2

简介: 接着我们上一小结没学完的PO设计模式,我们继续学习一下PO设计模式,并熟练运用。PO设计模式没有说完,未完待续。

文章目录

1.任务目标

接着我们上一小结没学完的PO设计模式,我们继续学习一下PO设计模式,并熟练运用

2.任务实操

2.1任务目录

2.2任务代码

2.2.1 Webdriver包下面的test_case包下面的page_object下面的Base_Page代码

from time import sleep
class Page():
    def __init__(self, driver):
        self.driver = driver
        self.base_url = "http://test.pandabrother.cn/gpracticef/my/login.html"
        self.timeout = 10
    def _open(self, url):
        url_ = self.base_url + url
        print("Test page is %s" % url_)
        self.driver.maximize_window()
        self.driver.get(url_)
        sleep(3)
        assert self.driver.current_url == url_, "Did not lend on %s" % url_
    def open(self):
        self._open(self.url)
    def find_element(self, *loc):
        return self.driver.find_element(*loc)
    #这里主要封装点击方法,浏览器的ip地址

2.2.2 Webdriver包下面的test_case包下面的page_object下面的Login_page代码

from selenium.webdriver.common.by import By
from Webdriver.test_case.page_object.Base_page import *
class LoginPage(Page):
    url = ""
    username_loc = (By.CLASS_NAME, "form-control")
    psw_loc = (By.XPATH, '//*[@id="input-password"]')
    click_loc = (By.XPATH, '/html/body/div/div/div[1]/section/form/div[3]/button')
    def type_username(self, user):
        self.find_element(*self.username_loc).send_keys(user)
    def type_pws(self, pws):
        self.find_element(*self.psw_loc).send_keys(pws)
    def type_click(self):
        self.find_element(*self.click_loc).click()
def test_user_login(driver, user, psw):
    login_page = LoginPage(driver)
    login_page.open()
    login_page.type_username(user)
    login_page.type_pws(psw)
    login_page.type_click()
    #在这个里面封装的是登录方法

2.2.3Webdriver包下面的test_case包下面的page_object下面的Add_page代码

from selenium.webdriver.common.by import By
from Webdriver.test_case.page_object.Base_page import *
class UserAdd(Page):
    url = ''
    sycd_loc = (By.XPATH, '//*[@id="sidebar-menu"]/div/ul/li/a')
    jcgl_loc = (By.XPATH, '//*[@id="sidebar-menu"]/div/ul/li/ul/li[2]/a')
    xinzeng_loc = (By.XPATH, '/html/body/div[1]/div/div[3]/div/div[3]/div[2]/div/form/button[2]')
    input_loc = (By.XPATH, '//*[@id="input-name"]')
    baocun_loc = (By.XPATH, '//*[@id="btn-save"]')
    cf_loc = (By.XPATH, '//*[@id="out-tip"]')
    def type_sycd(self):
        self.find_element(*self.sycd_loc).click()
    def type_jcgl(self):
        self.find_element(*self.jcgl_loc).click()
    def type_xinzheng(self):
        self.find_element(*self.xinzeng_loc).click()
    def type_input(self, input_name):
        self.find_element(*self.input_loc).send_keys(input_name)
    def type_baocun(self):
        self.find_element(*self.baocun_loc).click()
    def type_cf(self):
        return self.find_element(*self.cf_loc).text
def test_user_add(driver, input_name):
    add_test = UserAdd(driver)
    add_test.type_sycd()
    add_test.type_jcgl()
    add_test.type_xinzheng()
    add_test.type_input(input_name)
    add_test.type_baocun()
    #在这里面封装的是登录进去后添加数据和断言的方法

3.小结

PO设计模式没有说完,未完待续。

相关文章
|
3月前
|
人工智能 数据可视化 测试技术
Postman 性能测试教程:快速上手 API 压测
本文介绍API上线后因高频调用导致服务器告警,通过Postman与Apifox进行压力测试排查性能瓶颈。对比两款工具在批量请求、断言验证、可视化报告等方面的优劣,探讨API性能优化策略及行业未来发展方向。
Postman 性能测试教程:快速上手 API 压测
|
5月前
|
JSON JavaScript 测试技术
用Postman玩转电商API:一键测试+自动化请求教程
Postman 是电商 API 测试的高效工具,涵盖基础配置、自动化测试、环境管理与请求自动化,助你快速提升开发效率。
|
4月前
|
前端开发 Java jenkins
Jmeter压力测试工具全面教程和使用技巧。
JMeter是一个能够模拟高并发请求以检查应用程序各方面性能的工具,包括但不限于前端页面、后端服务及数据库系统。熟练使用JMeter不仅能够帮助发现性能瓶颈,还能在软件开发早期就预测系统在面对真实用户压力时的表现,确保软件质量和用户体验。在上述介绍的基础上,建议读者结合官方文档和社区最佳实践,持续深入学习和应用。
994 10
|
3月前
|
监控 测试技术 API
n8n自动化测试教程 (1):环境搭建与初识n8n
n8n是一款开源、可视化的工作流自动化工具,测试工程师可通过拖拽节点快速构建API测试流程,实现测试编排、数据管理、自动化监控与告警等功能,提升测试效率与覆盖率。
|
4月前
|
JSON 安全 测试技术
什么是API接口测试?这可能是全网最全的教程了!
API 是应用程序间的“中间人”,用于实现通信和数据交换。随着微服务架构的普及,API 数量激增,其质量对系统稳定性至关重要。API 测试可验证功能、性能与安全性,帮助开发者在部署前发现并修复问题,提升系统可靠性。测试内容包括请求方法、URL、请求头、请求体、响应状态码与响应数据等。常用工具如 Postman、AREX 可辅助测试,确保 API 在不同场景下的正确性与稳定性。
|
设计模式 Java Kotlin
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
158 2
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
178 2
|
设计模式 Java Kotlin
Kotlin教程笔记(54) - 改良设计模式 - 迭代器模式
Kotlin教程笔记(54) - 改良设计模式 - 迭代器模式
130 2
|
设计模式 Java API
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
127 2
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
141 1