我是靠谱客的博主 眼睛大奇异果,最近开发中收集的这篇文章主要介绍appium 移动端自动化测试工具(4),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一 简介

原生应用和web应用

(1)原生应用是特别为某种操作系统开发的.
(2)Web应用本质上是为移动浏览器设计的基于Web的应用.
(3)混合应用大家都知道是原生应用和Web应用的结合体,採用了原生应用的一部分、Web应用的一部分,所以必须部分在设备上执行、部分在Web上执行。

 

 

 

 

 

 

appium架构

 

 

二 appium特点

 

三 工作原理

 

appnium-client选择python语言编写appium脚本,并行执行脚本.
请求先经过appium-server服务端,通过解析和驱动移动设备虚拟机.

 

 

四 安装

http://appium.io/

 

 

 

 

双击下一步安装即可,

 

简单启动,设置host和port

 

点击start开启,界面如下

 

安装完成.

 

五 inspector (会话)配置

1 简介

 

 

 

 

 

 

 

 

 

 

 获取安卓版本

 

获取设备信息

 

 获取包名

adb shell dumpsys activity top | findstr “ACTIVITY”

 

 

 

 active名字

 

方法二 获取包名和active名字

 

 打开需要监听的软件,如考研帮,查看日志

 

保存session ,启用session 就可以进行app自动化测试.

 

六 考研app实战

要求:

 

 

账号:asdfghjkl0111
密码:********

 

 

工具

1 一台手机或者安卓模拟器
2 uiautomatorviewer
3 python

 

 

 实战步骤

1 启动appium,查看设备配置信息,不启动session .

 

 

 2 python 准备

1 安装 appium客户端

pip install Appium-Python-Client

 

 

2 必须保证appnium服务器启动,检测是否能正常驱动安卓软件,执行下面代码

#导入appium设备驱动器
from appium import webdriver
#设置安卓设备配置信息(appium中的inspector参数)
cap={
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62025",
"appPackage": "com.tal.kaoyan",
"appActivity": "com.tal.kaoyan.ui.login.LoginActivity",
"noReset": True
}
#实例化一个web驱动器
driver = webdriver.Remote('HTTP://127.0.0.1:4723/wd/hub',cap)

 

 

3 完整代码

#导入appium设备驱动器
import time
from appium import webdriver
#导入等待模块
from selenium.webdriver.support.ui import WebDriverWait
#设置安卓设备配置信息(appium中的inspector参数)
cap={
"platformName": "Android",
"platformVersion": "5.1.1",
"deviceName": "127.0.0.1:62025",
"appPackage": "com.tal.kaoyan",
"appActivity": "com.tal.kaoyan.ui.activity.SplashActivity",
"noReset": True
}
#实例化一个web驱动器
driver = webdriver.Remote('HTTP://127.0.0.1:4723/wd/hub',cap)
#
***
启动app耗时比较多,等待时间最好设置大一些
***
#如果存在跳过按钮,则获取跳过按钮
try:
# WebDriverWait用于等待按键出现
if WebDriverWait(driver,10).until(lambda x:x.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']")):
driver.find_element_by_xpath("//android.widget.TextView[@resource-id='com.tal.kaoyan:id/tv_skip']").click()
except:
pass
#处理登录过程
try:
#如果弹出登录界面,则登录
if WebDriverWait(driver, 3).until(lambda x: x.find_element_by_xpath("//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']")):
driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_email_edittext']").send_keys('asdfghjkl0111')
driver.find_element_by_xpath("//android.widget.EditText[@resource-id='com.tal.kaoyan:id/login_password_edittext']").send_keys('*********')
time.sleep(0.5)
driver.find_element_by_xpath("//android.widget.Button[@resource-id='com.tal.kaoyan:id/login_login_btn']").click()
except:
pass
# #点击咨询
if WebDriverWait(driver,10).until(lambda x: x.find_element_by_xpath("//android.support.v7.widget.RecyclerView[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]")):
driver.find_element_by_xpath("//android.support.v7.widget.RecyclerView[@resource-id='com.tal.kaoyan:id/date_fix']/android.widget.RelativeLayout[3]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click()
#获取设备的尺寸
def get_size():
x=driver.get_window_size()['width']
y=driver.get_window_size()['height']
return x,y
l= get_size()
x1=int(l[0]*0.5)
y1=int(l[1]*0.75)
y2=int(l[1]*0.25)
while True:
#滑动刷新页面,点到点滑动方式(x1,y1)--->(x2,y2)

driver.swipe(x1,y1,x1,y2)
time.sleep(0.5)

 

 

知识点讲解

  • 导入等待模块

  from selenium.webdriver.support.ui import WebDriverWait

  if WebDriverWait(driver,time).until(method):

  • 获取设备的尺寸

    def get_size(): x=driver.get_window_size()['width'] y=driver.get_window_size()['height'] return x,y

  • 活动页面

    while True: #滑动刷新页面,点到点滑动方式(x1,y1)--->(x2,y2) driver.swipe(x1,y1,x1,y2) time.sleep(0.5)

 

 显示等待:

  指定一个等待条件,和一个最长等待时间,程序会判断在等待时间内条件是否满足,如果满足则返回,如果不满足会继续等待,超过时间就会抛出异常.

if WebDriverWait(driver,time).until(method):

 

 

隐式等待
  当使用了隐式等待执行测试的时候,如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常, 换句话说,当查找元素或元素并没有立即出现的时候,隐式等待将等待一段时间再查找 DOM,默认的时间是0.
browser.implicitly_wait(10)#等待十秒加载不出来就会抛出异常,10秒内加载出来正常返回

 


转载于:https://www.cnblogs.com/angle6-liu/p/10815183.html

最后

以上就是眼睛大奇异果为你收集整理的appium 移动端自动化测试工具(4)的全部内容,希望文章能够帮你解决appium 移动端自动化测试工具(4)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部