IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> APP自动化 -> 正文阅读

[系统运维]APP自动化

?POMPOM设计原理

POM(page object model)页面对象模型,主要应用于UI自动化测试框架的搭建,主流设计模式之

一,页面对象模型:结合面向对象编程思路:把项目的每个页面当做一个对象进行编程

python基础:什么对象?

python中对象= 属性+行为 通过类定义=具有相同属性+相同行为对象集合00

POM一版分为四层

第一层:basepage层:描述每个页面相同的属性及行为

第二层:pageobject层(每个的独有特征及独有的行为)

第三层:testcase层(用例层,描述项目业务流程)

第四层:testdata(数据层)

from appium import webdriver

caps = {}

caps["platformName"] = "Android"

caps["deviceName"] = "127.0.0.1:62001"

caps["appPackage"] = "com.tencent.mobileqq"

caps["appActivity"] = "com.tencent.mobileqq.activity.LoginActivity"

driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

driver.implicitly_wait(30)

#导航界面

el2 = driver.find_element_by_id("com.tencent.mobileqq:id/btn_login")

el2.click()

#登录界面

el3 = driver.find_element_by_accessibility_id("请输入QQ号码或手机或邮箱")

el3.clear()

el3.send_keys("766603163")

el4 = driver.find_element_by_accessibility_id("密码 安全")

el4.clear()

el4.send_keys("lly19891024lly")

el5 = driver.find_element_by_accessibility_id("登 录")

el5.click()

po模型操作

basepage(封装公共的属性和行为)

class BasePages:

def __init__(self,driver):

self.driver = driver

#元素定位

def locator(self,*loc):

return self.driver.find_element(*loc)

#清空

def clear(self,*loc):

self.locator(*loc).clear()

#输入

def input(self,test,*loc):

self.locator(*loc).send_keys(test)

#点击

def click(self,*loc):

self.locator(*loc).click()

#滑动(上下左右滑动)

def swipe(self,start_x,start_y,end_x,end_y,duration=0):

#获取屏幕的尺寸

window_size = self.driver.get_window_size()

x = window_size["width"]

y = window_size["height"]

self.driver.swipe(start_x=x*start_x,

start_y=y*start_y,

end_x= x*end_x,

end_y=y*end_y,

duration=duration)

导航的代码

业务页代码

daohang_page.py(导航模块)

from day02.base.basepage import BasePages

from appium.webdriver.common.mobileby import MobileBy

#导航页面= base层属性赫行为+当前界面的特有的属性行为

class DaoHangPage(BasePages):

def __init__(self,driver):

BasePages.__init__(self,driver)

def click_login(self):

self.click(MobileBy.ID,"com.tencent.mobileqq:id/btn_login")

login_page.py(登录模块)

from day02.base.basepage import BasePages

from appium.webdriver.common.mobileby import MobileBy

#导航页面= base层属性赫行为+当前界面的特有的属性行为

class DaoHangPage(BasePages):

def __init__(self,driver):

BasePages.__init__(self,driver)

def click_login(self):

self.click(MobileBy.ID,"com.tencent.mobileqq:id/btn_login")

?单元测试模块

from day02.pageobjects.daohang_page import DaoHangPage

from day02.pageobjects.login_page import LoginPage

from appium import webdriver

import pytest

import time

class TestClass():

@classmethod

def setup_class(cls) -> None:

caps = {}

caps["platformName"] = "Android"

caps["deviceName"] = "127.0.0.1:62001"

caps["appPackage"] = "com.tencent.mobileqq"

caps["appActivity"] = "com.tencent.mobileqq.activity.LoginActivity"

cls.driver = webdriver.Remote("http://localhost:4723/wd/hub", caps)

cls.driver.implicitly_wait(30)

def test_01_daohang(self):

daohang = DaoHangPage(self.driver)

daohang.click_login()

def test_02(self):

login = LoginPage(self.driver)

login.clear_name()

login.input_name("766603163")

login.clear_pass()

login.input_pass("lly19891024lly")

login.click_dl_button()

@classmethod

def teardown_class(cls) -> None:

time.sleep(20)

cls.driver.quit()

if __name__ == '__main__':

pytest.main()

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-06-14 22:57:06  更:2022-06-14 22:58:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 0:43:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码