appium自动化测试python--相关方法

appium相关方法

1)#**scroll(起始元素,结束元素)**
driver.scroll(origin_el,destination_el)2)#**屏幕向右滑动**
def swipRight(driver,t=1000):
l=getSize(driver)
x1=int(l[0]*0.05)
y1=int(l[1]*0.5)
x2=int(l[0]*0.75)
driver.swipe(x1,y1,x2,y1,t)3)#**获得屏幕大小宽和高
def getSize(driver):
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
return (x, y)4)#**MultiAction()//**多点触控
MultiAction().add()添加多个TouchAction操作,最后调用perform()执行
action0 = TouchAction().tap(el)
action1 = TouchAction().tap(el)
MultiAction().add(action0).add(action1).perform()5)#**driver.swipe(x1, y1, x2, y2,duration) **从坐标(x1,x2)滑动到坐标(x2,y2),duration非必填项,滑动时间**(滑动的坐标不能超过屏幕的宽高)
#**driver退出、卸载、安装
driver.quit()
driver.install_app(apk path):安装app
driver.remove_app(app package  name):卸载app
driver.is_app_installed(app package  name):判断app是否已安装,已安装返回true6)#**关闭和启动app
driver.close_app()
driver.launch_app()
如需跨app执行用例,则可使用start_activity(self, app_package, app_activity, **opts)方法
(7)#**将app放置后台n秒,n秒后,页面自动回到前台
driver.background_app( n  )
#获取当前页面 和 启动指定页面
driver.current_activity()
driver.start_activity(包名,activity名)
当前页面是登录页就登录,否则先打开登录页再登录
(8)#**等待某个页面出现
driver.wait_activity('.Activity',3,1):等待3秒,每1秒检查一次,页面出现则返回true9)#**截屏函数
import time
from appium import webdriver
def captureScreen(self,filename):#传递图片文件名
 (10) #获取系统时间并转换格式作为图片名,20190830161035
 date=time.strftime("%Y%m%d%H%M%S",time.localtime())11) #拼接存储路径,电脑路径+时间+图片名+.png
 storeFile='E:/图片/'+date+filename+'.png'
 self.driver.get_screenshot_as_file(storeFile)12)#******放大图片*****
 srcHeight=self.driver.get_window_size()['height']
 srcWidth=self.driver.get_window_size()['width']13)#设置MultiAction,可以多点触控
 multiAction=MultiAction(self.driver)
#设置两个“单点”动作
  t1=TouchAction(self.driver)
  t2=TouchAction(self.driver)
  #分成两点按住相片0.25s
  t1.long_press(imageView,srcWidth/2,srcHeight/2 - 100).wait(250).move_to(imageView,srcWidth/2,srcHeight/2-130).release()
  t2.long_press(imageView,srcWidth/2,srcHeight/2 + 100).wait(250).move_to(imageView,srcWidth/2,srcHeight/2+125).release(
 #Java方法,multiAction.add(t1).add(t2)
 multiAction.add(t1)
 multiAction.add(t2)
 multiAction.perform()14)#拖拽函数
self.driver.drag_and_drop(musicBox,musicList)//musicBox拖拽的控件,musicBox要拖拽到的另一控件15)#TouchAction对象包含(tab)、press(短按)、move_to(滑动到某个坐标)等方法
通过TouchAction对象,添加tap、move_to等操作,然后perform()执行,可以实现解锁屏幕等功能
规范中的可用事件有:
* 短按 (press)
* 释放 (release)
* 移动到 (moveTo)
* 点击 (tap)
* 等待 (wait)
* 长按 (longPress)
* 取消 (cancel)
* 执行 (perform)16)#设置网络类型setNetworkConnection(bitmask掩码)*
例如:设置网络类型为只开wifi
driver.set_network_connection(2)#1 (飞行模式)4 (只有数据连接)6 (开启所有网络) |
#**newCommandTimeout:**设置未接收到新命令的超时时间,默认60s
如果60s内没有接收到新命令,appium会自动断开连接,可延长接收新命令的超时时间
desired_caps["newCommandTimeout"]=180017)#test suite测试套件
TestSuite(测试套件):实际上就是测试集,测试用例的集合,将我们需要执行的测试用例添加到测试集中,然后再一键执行。
TextTestRunner :用来执行测试用例集,TestCase和TestSuite本身也有自己执行用例的方法,不过TextTestRunner在实际应用中优于它们,使用方法:
1) suite = unittest.TestSuite() #TestSuite是个类,首先将它实例化,创建一个对象,然后用对象调用它的 addTest 方法
suite.addTest(TestMath('test_add'))  # 添加测试用
suite.addTest(TestMath('test_sub'))  
suite.addTest(TestMath('test_multiply'))  
suite.addTest(TestMath('test_divide'))  # 添加测试用例
 run = unittest.TextTestRunner(verbosity=2)# 创建个TextTestRunner对象,用对象调用run()方法,注意对象传参 verbosity=2 可以控制测试报告的详细程度,verbosity 有 0 1 2 三个级别,verbosity=2 的输出最详细
    run.run(suite)  # 执行 suite 用例集
2)suite = unittest.TestLoader().loadTestsFromTestCase(ComplexAndroidTests)#
ComplexAndroidTests测试类
  unittest.TextTestRunner(verbosity=2).run(suite)18)#******键盘操作*****
driver.keyevent() #括号里填入的是手机物理按键的数字代号
driver.press_keycode()# 括号里填入的是键盘按键的数字代号
参考博客:https://www.cnblogs.com/xiaobaixiaobai/p/10760943.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值