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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> appium常用api方法以及python自动化断言、方法/函数封装 -> 正文阅读

[开发测试]appium常用api方法以及python自动化断言、方法/函数封装

目录:
一、appium常用api方法
二、python appium自动化断言
三、python 方法/函数封装

一、appium常用api方法

setup() :在每一条用例开始前做准备工作
teardown(): 在每条用例结束后做清除工作
setupClass(): 在全部用例开始前做一次准备工作
tearDownClass(): 在全部用例结束后做一次清除工作
self.driver.launch_app():启动被测试的应用
driver.start_activity(‘包名’,‘启动名’)
声明驱动对象:driver = webdriver.Remote(‘http://localhost:4723/wd/hub’, desired_caps)
self.driver.get_screenshot_as_base64():屏幕截图
click():点击元素
scroll():从一个元素滚动到另外一个元素,driver.scroll(start_element,stop_element,1000)
send_keys():发送对应数据
TouchAction(driver).long_piress(x=194, y=728, duration=1000).move_to(x=193, y=300).release().perform():长按滑动
tap():多点触屏,TouchAction action = new TouchAction(driver);action.tap(x, x).perform();//double_tap
相关操作方法链接
https://www.kancloud.cn/testerhome/appium_docs_cn/2001600
请添加图片描述
相关api官方链接:
http://appium.io/docs/en/about-appium/api/
在这里插入图片描述

二、python appium自动化断言

常用断言方法:
assertIn(a,b,msg) : 判断a是否被b包含
assertEqual(a,b,msg):如两个值相等,则pass
assertNotEqual(a,b,msg) :如两个值不相等,则pass
assertTrue(a, msg) : 判断a的bool值是否为true,为true既通过,否则失败
assertIs(arg1,arg2):验证arg1、arg2是同一个对象,不是则fail
assertIsNone(expr, msg):验证expr是None(不存在),不是则fail

    # 断言
    result = driver.find_element_by_id('xxxxx').text
    self.assertEqual(result, "shoes", msg='用例失败')

    self.assertTrue(driver.find_element_by_id('search').is_enabled(),'search按钮不可使用,断言失败')

    self.assertIsNotNone(driver.find_element_by_id('New Image'),'无拍照按钮,断言失败')

msg参数为断言失败的提示语,当断言失败时,会提示该信息

三、python 方法/函数封装

为适应一些元素的变化,当元素变化时只需要维护一个页面,或者多个场景都需要用到这个方法时,可以考虑封装,让脚本看起来更简洁
举例说明在搜索模块ui自动化时,
(1)其中一个简单的基本方法封装,元素点击:

def touch_tap(self, x, y):
    # 设定系数,控件在当前手机的坐标位置除以当前手机的最大坐标为坐标的相对系数
    screen_width = self.driver.get_window_size()['width']  # 获取当前屏幕的宽
    screen_height = self.driver.get_window_size()['height']  # 获取当前屏幕的高
   # 屏幕坐标乘以系数即为用户要点击位置的具体坐标
    a = (float(x) / screen_width) * screen_width
    x1 = int(a)
    b = (float(y) / screen_height) * screen_height
    y1 = int(b)
    self.driver.tap([(x1,y1)])

在执行元素操作的.py脚本下,调用此方法

touch_tap(self,传参x,传参y)

(2)部分函数封装
基类:

    def element_click(self,loc,loc_value):
        self.driver.find_element(loc,loc_value).click()

    def find_element(self,loc,loc_value,timeout=10,poll=0.5):
    //def find_element(self,loc,timeout=10,poll=0.5):
        return WebDriverWait(self.driver,timeout,poll).until(lambda x:x.find_element(loc,loc_value))
        //return WebDriverWait(self.driver,timeout,poll).until(lambda x:x.find_element(*loc))

    def element_input(self,loc,loc_value,text):
        self.driver.find_element(loc,loc_value).send_key(text)

封装页面对象:

class test#申明公共对象
        search_box = (By.ID, "com.xxx:id/xxxxx")
        search_btn = (By.ID, "com.xxx:id/btn_searchbarxxxx")
#调用上面查找元素的方法并进行封装
        def find_element(self, loc=search_btn):
               base_method.method.find_element(self, loc)
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:47:47  更:2021-07-24 11:48:18 
 
开发: 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年11日历 -2024/11/17 20:27:45-

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