appium自动化测试之PO模型设计

 

目录

PO模型

PO分层

PO模型设计框架

config目录

common目录

pages目录

function目录

case目录

logs目录

report目录

runTest.py文件

总结:


我们在做自动化的时候应该都听过PO模型,那么什么是PO模型呢?PO模型在自动化中的作用是什么呢?

PO模型

PO其实就是:、Page Object Model,也称作为POM模型,PO其实是一种设计模式,已经在自动化测试中流行起来,以增强测试维护并减少代码重复。页面对象是面向对象的类,用作页面的接口和被测设备。 然后,只要测试需要与该页面的UI进行交互,这些测试便会使用该页面对象类的方法,其好处在于,如果页面的UI发生了更改,则无需更改测试本身,只需更改其中的代码即可。页面对象需要更改。 随后,所有支持该新UI的更改都位于一个位置。其实说到低就是一句话:把每一个页面当作一个类,把页面上的元素信息和代码操作分离开,然后方面后面我们进行管理代码和元素内容

PO分层

PO分层也就是对我们自动化代码进行分层具体可以分为以下基层

1、基础层:封装一些定位方法,点击,输入,滑动等操作

2、公用层:获取元素方法,操作元素方法,获取CMD信息等方法

3、业务层:页面元素信息。

4、逻辑层:一些功能,比如登录,注册。

5、数据层:测试信息存放地方

emmm,这里是安静这边自身的了解,当然可能每个人对PO分层的理解不同,可能大佬们分的比我这里更加详细。(一起分享,共同学习)

这里安静简单拿项目来进行实际介绍下PO内容

首先我们先看以前如何编写测试用例的

# coding:utf-8
from appium import webdriver
import time
import unittest
class login(unittest.TestCase):
    def setUp(self):
        desired_caps = {
                        'platformName': 'Android',  # 测试版本
                        'deviceName': 'emulator-5554',   # 设备名
                        'platformVersion': '5.1.1', # 系统版本
                        'appPackage': 'com.taobao.taobao', #apk的包名
                       'appActivity': 'com.ali.user.mobile.login.ui.UserLoginActivity', # apk的launcherActivity
                        'noReset':True , # 清除缓存
                        }
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
    def tearDown(self):
        self.driver.quit()
    def test01(self):
        '''
        账号密码错误
        '''
        self.driver.implicitly_wait(40)
        self.driver.find_element_by_id("com.eboss2.sbs:id/tv_username").send_keys("22222")
        time.sleep(2)
        self.driver.find_element_by_id("com.eboss2.sbs:id/tv_password").send_keys("33333333")
        time.sleep(2)
        self.driver.find_element_by_id("com.eboss2.sbs:id/btn_login").click()
        time.sleep(5)
        x = self.driver.find_element_by_id("com.eboss2.sbs:id/shopName_TextView").text
        print(x)
        self.assertEqual(x,'请输入正确的手机号')
if __name__ == '__main__':
    unittest.main()

相信绝大部分的同学,第一次写代码的时候都会这样写测试用例

PO模型设计框架

肯定有人会问?什么是自动化框架?自动化框架有什么好处呢?这个地方我们先不说答案,我们后面写

首先把安静这边设计的框架先整体列出来,一个个为大家分析

appium_python    # 目标工程
    
    - case        # 用例存放
        test_login.py    # 编写用例

    - common    # 公用方法
        appium_start.py    # 启动appium
        Base.py    # 封装基础内容
        dos_cmd.py    # cmd执行
        HTmlTestRunner.py    # 报告文件
        logger.py    # 日志
        read_yaml.py    # 读取yaml文件
    
    - config    # 页面元素存放
        appium.py    # login页面存放
        
    - function     # 功能点
        login.py    # 登录逻
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值