精华内容
下载资源
问答
  • appium自动化

    2018-07-24 11:40:42
    用于app自动化测试,超级好用的手机自动化测试,方便测试无烦恼
  • 想想看appium入门已经做了半个多月了,不说掌握所有的文章,但掌握百分之八十,一定就能达到入门...第一类:【appium】appium自动化入门之环境搭建(上) 第二类:【appium】appium自动化入门之API(上) 书接上文:【a

    想想看appium入门已经做了半个多月了,不说掌握所有的文章,但掌握百分之八十,一定就能达到入门的程度了

    入门篇也是完结的时候了,进阶篇什么时候做呢就看时间吧,下一个系列先预定为selenium的入门篇(说不定,可能鸽了

    这篇文章主要是考虑到有不少人问我在appium中的一些英文参数、关键字是什么意思,特地查询了些各种资料,自己整理了一番(后来才发现有官方文档

    第一类:【appium】appium自动化入门之环境搭建(上)

    第二类:【appium】appium自动化入门之API(上)

    书接上文:【appium】appium自动化入门之ios软件如何测试

    下文:【自动化测试岗位建议熟读!!!Python+Selenium代码编写方法大全】

    这些天都在整合资料,appium进阶资料肯定是有的,需要的可以点击并输入暗号:CSDN在这里插入图片描述

    特别版 基本参数

    通用

    参数 描述 实例
    automationName 自动化测试引擎 Appium 或 Selendroid
    platformName 手机操作系统 iOS, Android, 或 FirefoxOS
    platformVersion 手机操作系统版本 如: 7.1, 4.4;ios 的 9.0
    deviceName 手机或模拟器设备名称 android 的 忽 略 , ios如 iPhoneSimulator
    app .ipa .apk 文件路径 比 如 /abs/path/to/my.apk 或 http://myapp.com/app.ipa
    browserName 启动手机浏览器 iOS 如 :Safari , Android 如:Chrome,Chromium,Browser
    newCommandTimeout 设置命令超时时间,单位: 秒。 比如 60
    autoLaunch Appium 是否需要自动安装 和启动应用。默认值 truetrue, false
    language (Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的语言。 如: fr
    locale (Sim/Emu-only) 设定模拟器 ( simulator / emulator ) 的 区域设置。 如: fr_CA
    udid ios 真机的唯一设备标识 如: 1ae203187fc012g
    orientation 设置横屏或竖屏 LANDSCAPE (横向) 或 PORTRAIT (纵向)
    autoWebview 直接转换到 WebView 上 下文。 默认值 false true, false
    noReset 不要在会话前重置应用状 态。默认值 false。 true, false
    fullReset (iOS) 删除整个模拟器目 录。(Android)通过卸载默认 值 false true, false

    Android 特有

    关键字 描述 实例
    appActivity 启动 app 包,一般点开头 如:.MainActivity, .Settings
    appPackage Android 应用的包名 比如 com.example.android.myApp
    appWaitActivity 等待启动的 Activity 名称 SplashActivity
    deviceReadyTime out 设置超时时间 5
    androidCoverage 用 于 执 行 测 试 的 instrumentation 类 com.my.Pkg/com.my.Pkg.instrumenta tion.MyInstrumentation
    enablePerforman ceLogging ( 仅 适 用 于 Chrome 和 webview) 开 启 Chromedriver 的 性 能 日 志。(默认 false) true, false
    androidDeviceRe adyTimeout 等待设备在启动应用后超 时时间,单位秒 如 30
    androidDeviceSo cket 开发工具的 socket 名称。 Chromedriver 把它作为开 发者工具来进行连接。 如 chrome_devtools_remote
    avd 需要启动的 AVD (安卓模 拟器设备) 名称。 如 api19
    avdLaunchTimeou t 以毫秒为单位,等待 AVD 启动并连接到 ADB 的超 时时间。(默认值 120000) 300000
    avdReadyTimeout 以毫秒为单位,等待 AVD 完成启动动画的超时时 间。(默认值 120000) 300000
    avdArgs 启动 AVD 时需要加入的 额外的参数。 如 -netfast
    useKeystore 使 用 一 个 自 定 义 的 keystore 来对 apk 进行重 签名。默认值 false true or false
    keystorePath 自定义 keystore 路径。默 认~/.android/debug.keystore 如 /path/to.keystore
    keystorePassword 自定义 keystore 的密码。 如 foo
    keyAlias key 的别名 如 androiddebugkey
    keyPassword key 的密码 如 foo
    chromedriverExe cutable webdriver 可执行文件的绝 对 路 径 应 该 用 它 代 替 Appium 自带的 webdriver) /abs/path/to/webdriver
    autoWebviewTime out 毫秒为单位,Webview 上 下文激活的时间。默认 2000 如 4
    intentAction 用于启动 activity 的 intent action 。 ( 默 认 值 android.intent.acti on.MAIN) 如 android.intent.action.MAIN, android.intent.action.VIEW
    intentCategory 用 于 启 动 activity 的 intent category。 (默认值 android.intent.cate gory.LAUNCHER) 如android.intent.category.LAUNCHER, android.intent.category.APP_CONTA CTS
    intentFlags 用于启动 activity 的标识 (flags) ( 默 认 值 0x10200000) 如 0x10200000
    optionalIntentA rguments 用于启动 activity 的额外 intent 参 数 。 如 --esn <EXTRA_KEY> <EXTRA_KEY> <EXTRA_BOOLEAN,_VAL-U-Ee>
    dontStopAppOnRe set 在使用 adb 启动应用时不 要停止被测应用的进 程。默认值: false true 或 false
    unicodeKeyboard 使用 Unicode 输入法。默 认值 false true 或 false
    resetKeyboard 重置输入法到原有状态, 默认值 false true 或 false
    noSign 跳过检查和对应用进行 debug 签名的步骤。默认 值 false true 或 false
    ignoreUnimporta ntViews 调用 uiautomator 的函数 这个关键字能加快测试执 行的速度。默认值 false true 或 false
    disableAndroidW atchers 关闭 android 监测应用无 响 ANR 和崩溃 crash 的监 视器默认值: false。 true 或者 false
    chromeOptions 允 许 传 入 chrome driver 使用的 chromeOptions 参 数 。 chromeOptions: {args: [‘–disable-popup-blocking‘]}

    iOS特有

    关键字 描述 实例
    calendarFormat (Sim-only) 为 iOS 的模拟 器设置日历格式 如 gregorian (公历)
    bundleId 被测应用的 bundle ID, 真机上执行测试时,你可 以不提供 app 关键字, 但你必须提供 udid 如 io.appium.TestApp
    udid 连接真机的唯一设备编 号 ( Unique device identifier ) 如 1ae203187fc012g
    launchTimeout 以 毫 秒 为 单 位 , 在 Appium 运行失败之前设 置一个等待 instruments 的时间 比如: 20000
    locationServicesEnabled (Sim-only) 强制打开或关 闭定位服务。默认值是保 持当前模拟器的设定 true 或 false
    locationServicesAuthorize d 使用这个关键字时,你同 时需要使用 bundleId 关键字来发送你的应用 的 bundle ID 。 true 或者 false
    autoAcceptAlerts 当 iOS 的个人信息访问 警告 (如 位置、联系人、 图片) 出现时,自动选择 接受( Accept )。默认值 false。 true 或者 false
    autoDismissAlerts 当 iOS 的个人信息访问 警告 (如 位置、联系人、 图片) 出现时,自动选择 不接受( Dismiss )。默认值 false。 true 或者 false
    nativeInstrumentsLib 使用原生 intruments 库 ( 即 关 闭 instruments-without-dela y ) true 或者 false
    nativeWebTap (Sim-only) 在 Safari 中允 许"真实的",默认值: false。注意: 取决于 viewport 大小/比例, 点 击操作不一定能精确地 点中对应的元素。 true 或者 false
    safariInitialUrl (Sim-only) (>= 8.1) Safari 的初始地址。默认值是一 个本地的欢迎页面 例 如 : https://www.github.com
    safariAllowPopups (Sim-only) 允 许 javascript 在 Safari 中创 建新窗口。默认保持模拟 器当前设置。 true 或者 false
    safariIgnoreFraudWarning (Sim-only) 阻 止 Safari 显示此网站可能存在风 险的警告。默认保持浏览器当前设置。 true 或者 false
    safariOpenLinksInBackgrou nd (Sim-only) Safari 是否允许 链接在新窗口打开。默认 保持浏览器当前设置。 true 或者 false
    keepKeyChains (Sim-only) 当 Appium 会话开始/结束时是否保 留 存 放 密 码 存 放 记 录 (keychains) ( 库 (Library)/ 钥匙串(Keychains)) true 或者 false
    localizableStringsDir 从哪里查找本地化字符 串。默认值 en.lproj en.lproj
    processArguments 通过 instruments 传递到 AUT 的参数 如 -myflag
    interKeyDelay 以毫秒为单位,按下每一 个按键之间的延迟时间。 如 100
    showIOSLog 是否在 Appium 的日志 中显示设备的日志。默认 值 false true 或者 false
    sendKeyStrategy oneByOne (一个接着一 个) 。真实设备默认值: grouped (分组输入)
    screenshotWaitTimeout 以秒为单位,生成屏幕截 图的最长等待时间。默认值: 10。 如5
    waitForAppScript 用于判断 "应用是否被启动“的iOS子哦的自动化脚本代码。默认情况下系统 等待直到页面内容非空。 结果必须是布尔类型。 例 如 true; target.elements().length, > 0;, $.delay(5000); true;

    一定要看

    以上就是appium的最后一节了,上述关键字觉得有用的记得收藏一下哦,英语好的也可以点击官方文档 去查看

    下次更新selenium工具的入门学习,一起学习的大家点个关注不迷路

    觉得有必要的小伙伴也可以点击并输入暗号:CSDN来一起交流学习,入门知识、进阶问题、前沿讨论都欢迎大家
    在这里插入图片描述

    展开全文
  • APPIUM自动化框架

    2020-11-11 11:15:43
    一个appium自动化框架,非常不错,拓展性强,可以将各个复用性的功能封装。
  • appium自动化框架介绍

    2017-12-11 15:32:42
    appium自动化框架介绍,原理等,appium自动化框架介绍,原理等
  • appium自动化测试

    2017-12-15 10:41:34
    appium自动化(图文教程),主要是针对Android自动化测试,从入门到精通
  • Appium介绍Appium是一个跨平台移动端自动化测试工具,可以非常便捷地为iOS和Android平台创建自动化测试用例。它可以模拟App内部的各种操作,如点击、滑动、文本输入等,只要我们手工操作的动作Appium都可以完成。在...
    bb6302300c938704439e68293dee2af6.gifAppium介绍0517ec831789ab6c32e419dd4263098f.png

    Appium是一个跨平台移动端自动化测试工具,可以非常便捷地为iOS和Android平台创建自动化测试用例。它可以模拟App内部的各种操作,如点击、滑动、文本输入等,只要我们手工操作的动作Appium都可以完成。在前面我们了解过Selenium,它是一个网页端的自动化测试工具。Appium实际上继承了Selenium,Appium也是利用WebDriver来实现App的自动化测试。对iOS设备来说,Appium使用UIAutomation来实现驱动。对于Android来说,它使用UiAutomator和Selendroid来实现驱动。

    bb6302300c938704439e68293dee2af6.gifappium server安装

    ● 方法一:node.js & npm

    Nodejs下载安装

    388b2e86fab42866c3cb70a3bfffd5e2.png

    8be0066a399f9188b6ba5cc128dbf3a0.png

    NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

    ■ 允许用户从NPM服务器下载别人编写的第三方包到本地使用。

    ■ 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

    ■ 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

    npm install -g appium
      npm install -g appium-doctor
      appium-doctor
    32452ae7727b3e5ff05ad72bb61d9892.png27d3948fedb4ec2f74818d37f5fe8f76.png

    ● 方法二:Appium Desktop

    Appium Desktop下载

    5f54deadf3e50d3377b32e9d2c5a05cf.png

    当前用户安装:

    3241e0e4788e32192f337c0be24dc1d6.png

    安装完成后,如下显示:

    b045385f65449f7590e9eb919fb307dc.png

    勾选Advanced-Allow Session Override-Start Sever,开启服务:

    6c5b96ac7587ebc129099ade002d296e.png发现更多精彩关注公众号1786407fc02ea4f30eb1899f8fd76c01.pngf28c3a8ae098b3b80af7d0eb9959c21c.gif2720d05d25704c29c53f1576f34b4f8e.png
    展开全文
  • appium自动化框架

    2017-03-06 18:27:32
    自己做的 appium 自动化框架,还有不足之处,使用时出现问题请谅解
  • pyhton+appium自动化培训

    2017-11-22 09:23:48
    pyhton+appium自动化培训,干货,你们懂得吧pyhton+appium自动化培训,干货,你们懂得吧
  • python+appium自动化工程

    2018-09-03 23:17:03
    python+appium自动化工程
  • 【appium】appium自动化入门之UI界面

    千次阅读 2020-10-27 15:29:09
    书接上文:【appium】appium自动化入门之元素篇 API篇:【appium】appium自动化入门之API(上) 环境搭建篇:【appium】appium自动化入门之环境搭建(上) 目录正文2.10 滑动屏幕2.10.1 swipe 介绍2.10.2 获取坐标...

    每日更新(大概吧
    这次谈谈有关界面点击方面的代码应该如何编写,本节代码方面比较多,可以拿去作为模板复制粘贴(手动狗头)

    欢迎大家点击并输入暗号:CSDN来催更,和接待小姐姐说一下催更,就能更多爆更哦~~

    书接上文:【appium】appium自动化入门之元素篇
    API篇:【appium】appium自动化入门之API(上)
    环境搭建篇:【appium】appium自动化入门之环境搭建(上)

    正文

    2.10 滑动屏幕

    2.10.1 swipe 介绍

    1. 查看源码语法,起点和终点四个坐标参数,duration 是滑动屏幕持续的时间, 时间越短速度越快。

    默认为 None 可不填,一般设置 500-1000 毫秒比较合适

     swipe(self, start_x, start_y, end_x, end_y, duration=None)
      Swipe from one point to another point, for an optional duration. 
      #从一个点滑动到另外一个点,duration 是持续时间 
    
     #参数: 
     - start_x - 开始滑动的 x 坐标 
     - start_y - 开始滑动的 y 坐标 
     - end_x - 结束点 x 坐标 
     - end_y - 结束点 y 坐标 
     - duration - 持续时间,单位毫秒 
    
    #:例如: 
    driver.swipe(100, 100, 100, 400)
    
    1. 值得注意的是,手机从左上角开始为 0点,横着的是 x 轴,竖着的是 y 轴
      在这里插入图片描述

    2.10.2 获取坐标

    1. 由于每个手机屏幕的分辨率不一样,所以同一个元素在不同手机上的坐标也是 不一样的,滑动的时候坐标不能写死了

    要先获取屏幕的宽和高,再通过比例去 计算。

    # coding:utf-8 
    from appium import webdriver 
    desired_caps = {
     'platformName': 'Android', 
     'deviceName': '30d4e606', 
     'platformVersion': '4.4.2', 
     # apk 包名 
     'appPackage': 'com.taobao.taobao', 
     # apk 的 launcherActivity 
     'appActivity': 'com.taobao.tao.welcome.Welcome' 
     } 
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) 
    # 获取屏幕的 size 
    size = driver.get_window_size() 
    print(size) 
    # 屏幕宽度 
    width print(size['width']) 
    # 屏幕高度 
    width print(size['height']) 
    
    1. 运行结果:
      例如:{u’width’: 720, u’height’: 1280}
      宽:720
      高:1280

    2.10.3 封装滑动方法

    1. 把上下左右四种常用的滑动方法封装,这样以后想滑动屏幕时候就能直接调用 了
      参数 1:driver
      参数 2:t 是持续时间
      参数 3:滑动次数
    2. 代码参考
    #coding:utf-8 
    from appium import webdriver 
    from time import sleep 
    desired_caps = {
     'platformName': 'Android', 
     'deviceName': '30d4e606', 
     'platformVersion': '4.4.2', 
     # apk 包名 
     'appPackage': 'com.taobao.taobao', 
     # apk 的 launcherActivity  
     'appActivity': 'com.taobao.tao.welcome.Welcome' 
     } 
    driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub', 
    desired_caps) 
    
    def swipeUp(driver, t=500, n=1): 
     '''向上滑动屏幕''' 
     l = driver.get_window_size() 
     x1 = l['width'] * 0.5 
     # x 坐 标 
     y1 = l['height'] * 0.75 
     # 起始 y 坐标 
     y2 = l['height'] * 0.25 
     # 终点 y 坐标 
     for i in range(n):
      driver.swipe(x1, y1, x1, y2, t) 
    def swipeDown(driver, t=500, n=1): 
     '''向下滑动屏幕''' 
     l = driver.get_window_size() 
     x1 = l['width'] * 0.5 
     # x 坐 标 
     y1 = l['height'] * 0.25 
     # 起 始 y 坐 标 
     y2 = l['height'] * 0.75 
     # 终 点 y 坐 标 
     for i in range(n):
      driver.swipe(x1, y1, x1, y2,t) 
    def swipLeft(driver, t=500, n=1):
     '''向左滑动屏幕''' 
     l = driver.get_window_size() 
     x1 = l['width'] * 0.75 
     y1 = l['height'] * 0.5 
     x2 = l['width'] * 0.05 
     for i in range(n): 
      driver.swipe(x1, y1, x2, y1, t) 
    def swipRight(driver, t=500, n=1):
     '''向右滑动屏幕''' l = driver.get_window_size() 
     x1 = l['width'] * 0.05 
     y1 = l['height'] * 0.5 
     x2 = l['width'] * 0.75 
     for i in range(n):
      driver.swipe(x1, y1, x2, y1, t) 
    ifname=="main":
     print(driver.get_window_size())
     sleep(5) 
     swipLeft(driver, n=2) 
     sleep(2) 
     swipRight(driver, n=2) 
    

    2.11 模拟手指点击(tap)

    前言

    有时候定位元素的时候,你使出了十八班武艺还是定位不到,怎么办呢?
    这个问题面试经常会问,那就教大家一手绝活:点元素所在位置的坐标 (别经常使用哦

    2.11.1 tap 用法

    1.tap 是模拟手指点击
    一般页面上元素的语法有两个参数,第一个是 positions,另一个是duration

    tap(self, positions, duration=None):
     Taps on an particular place with up to five fingers, holding for a certain time 
    #模拟手指点击(最多五个手指),可设置按住时间长度(毫秒)
     :参数: 
     - positions - list 类型
     - #里面对象是元组,最多五个.
     - #例如
     - [(100, 20), (100, 60)] 
     -  duration 
     -  #持续时间,单位毫秒
     - #例如
     - 500 
    #:最终样子: 
    driver.tap([(100, 20), (100, 60), (100, 100)], 500) 
    

    2.11.2 坐标定位

    1.如下图定位"去看看"这个按钮的坐标,可以看到右侧 bonds 属性: [374,831] [654,906]
    在这里插入图片描述

    2.点右上角"搜索"按钮,查看 bonds 属性:[615,52][690,146]
    在这里插入图片描述

    2.13.3 参考案例

    # coding:utf-8 
    from appium import webdriver 
    from time import sleep
    desired_caps = {
     'platformName': 'Android', 
     'deviceName': '127.0.0.1:62001', 
     'platformVersion': '4.4.2', 
     'appPackage': 'com.baidu.yuedu', 
     'appActivity':
    'com.baidu.yuedu.splash.SplashActivity' 
     } 
    driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
     sleep(5) 
     # 点弹出框去看看 
    driver.tap([(374, 831), (654, 906)], 500) 
    
    # 返回上一页 
    driver.back() 
    sleep(2) 
    
    # 点右上角搜索按钮 driver.tap([(615, 52), (690, 146)], 500)
    

    通过坐标定位是元素定位的下下下策,实在没办法才用这个,一个是麻烦,一个是这种定位方法不常用
    但有这样一个测试思维,说不定在紧急情况可以拿出来救火

    最后

    以上代码碰到问题的可以点击并输入暗号:CSDN截图好你的问题,群内会有不定时大佬出来回答的,需要一些自动化测试资料或者面试资料的也可以来看看在这里插入图片描述

    展开全文
  • # IOS + Appium自动化教程 ; # IOS 手机UI自动化
  • Appium自动化测试工具介绍
  • appium自动化环境搭建-附件资源
  • appium自动化测试文档

    2015-04-16 14:08:04
    appium自动化测试文档
  • #IOS + Appium自动化教程手册、曲一线经历
  • 第一类:【appium】appium自动化入门之环境搭建(上) 第二类:【appium】appium自动化入门之API(上) 书接上文:【appium】appium自动化入门之Mac端(苹果电脑的福音) 看前提醒一下,本章安装环境居多,因为ios和...

    上篇文章写到appium在Mac上的环境搭建,这篇进入正文,如何在Mac端的appium上测试你的ios产品

    app端的文章如下:
    第一类:【appium】appium自动化入门之环境搭建(上)
    第二类:【appium】appium自动化入门之API(上)
    书接上文:【appium】appium自动化入门之Mac端(苹果电脑的福音)

    看前提醒一下,本章安装环境居多,因为ios和安装环境的去呗,有的配置需要改动代码
    如果有不懂的地方记得点击并输入暗号:CSDN,提出你的详细问题(环境截图),会有大佬给你解答的

    3.3 启动 ios 上 safari 浏览器

    前言

    在 mac 使用 appium去做ios软件的测试,记得一定一定要保证版本一致

    环境准备:

    1.OS 版 本 号 10.12
    2.xcode 版本号 8.3.2
    3.appium 版本号 1.6.4(appium-desktop1.1.0)
    4.ios 模拟器版本号 10.3

    3.3.1 OS10.12

    1.这里 Mac 上的 OS 系统一定要升级到 10.12,低于 10.12 是无法安装 8.3.2 的 xcode 版本的
    在这里插入图片描述

    2.下载地址:https://www.apple.com/macos/sierra/

    3.3.2 xcode
    1.== Xcode 版本号下载 8.3 以上==,同事的电脑是 8.3.2 的版本: 在这里插入图片描述

    1. xocde 在sppstore 就能搜索下载,但是太慢了,这里直接去苹果开发者官网 下载:https://developer.apple.com/support/xcode/
      在这里插入图片描述

    3.3.3 appium

    1. appium 的依赖环境,参考我上一篇【appium】appium自动化入门之Mac端(苹果电脑的福音)

    2. 这 里 主 要 是 下 载 一 个 客 户 端 的 包 , 下 载 地 址 : https://pan.baidu.com/s/1cSZAYYQmonTLGI8z-3mBug 暗号i4ok
      如下图,下载那个 dmg 文件就能傻瓜式安 装了
      在这里插入图片描述

    3. 安装好后,启动界面如下,不用做任何的修改,直接点 ==Start Server 1.6.4 ==
      在这里插入图片描述

    3.3.4 ios 模拟器 Simulator

    1. 启动 xcode,新建一个项目,随便设置下,在屏幕左上角找到 Simulator,这里就带一个百度的一个正确答案
    2. 我这里选的是== iOS10.3 的版本==,iPhone SE
      在这里插入图片描述

    3.3.5 pycharm 安装

    1. 先去 pycharm 官网下载一个 dmg 包,官网地址

    2. 选中 mac 版的 Professional 专业版就行,下载完之后傻瓜式安装
      在这里插入图片描述

    3. 打开软件,在 License server address 中填入http://xidea.online,然后 点击 Activate 即可顺利破解!
      接下来开始你的 hello world!之旅吧

    3.3.6 启动 Safari

    1. 打开 pycharm,写如下代码
    # coding:utf-8
    
    fron appium import webdriver
    
    cop = {
     "platformName":"iOS",
     "platformVersion":"10.3",
     "deviceName":"iphone SE"
     "browserName":"safari"
     }
    driver = webdriver.Remote("http//127.0.0.1:4723/wd/hub",cap)
    driver.get("https//m.baidu.com")
    
    1. appium 要是开着的

    3.3.7 WebDriverAgent

    1. 第一次启动脚本,会在手机上自动安装一个 WebDriverAgent,如下图所示, 一定要看到这个,要不然肯定不成功
      在这里插入图片描述

    2. WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备

    3.4 启动 iOS 上 app 有 demo 源码案例下载

    前言

    上面已经可以启动 iOS 模拟器上的 safari 浏览器了,启动 app 比启动浏览器 要复杂一点,本篇以 github 上的源码为案例详细介绍如何启动 iOS 模拟器的 app

    3.4.1 clone 源码

    1. github 上 Appium 的 案 例 源 码 地 址:https://github.com/appium/sample-code.git添加链接描述
    2. 确保 mac 上已经安装了 git
    3. 在 mac 本地新建一个文件夹,如:git_test_app,把代码 clone 到本地
      $ cd /git_test_app
      $ git clone https://github.com/appium/sample-code.git
      在这里插入图片描述

    3.4.2 启动 appium

    1.确保 appium 是启动状态,如下左图
    2.确保 iOS 模拟器是启动状态,如下右图
    在这里插入图片描述

    3.4.3 pycharm 执行代码

    1. 在第一步 clone 下来的代码里,找到路径:/sample-code/examples/python, 就是 appium 案例的 python 代码。
      当然这里也有其它语言的,如:java、php、perl、ruby 等,语言种类还是很全的。在这里插入图片描述

    2. 把找到的 python 这个项目包导入到 pycharm 里,找到 ios_simple.py 这个脚本打开如下:

    在这里插入图片描述

    1. 这里主要改2个地方(其它地方不要动),一个是 platformVersion,保持跟右边模拟器 iOS 系统版本号一致, 第二个是 deviceName,如右图所示,这里是 iPhone 6 为例

    2. 运行代码后在模拟器上会安装一个 TestApp
      在这里插入图片描述

    3. 运行时,手机上界面如图
      在这里插入图片描述

    4. pycharm 运行结果:
      在这里插入图片描述

    3.4.4 终端执行

    1.除了在 pycharm 执行,也可以直接在终端执行
    $ cd /git_test_app/sample-code/sample-code/examples/python
    $ python ios_simple.py
    在这里插入图片描述

    在上述安装过程中有遇到疑问的,可以点击并输入暗号:CSDN

    3.5 iOS 模拟器安装产品 app

    前言

    做过 iOS 上app 测试的小伙伴应该都知道,普通用户安装 app 都是从 appstore 下载安装,安装测试版本的 app,一般就是开发给的二维码扫码安装

    或者开发给个.ipa 的安装包文件,通过 itools 安装。对于没有 iPhone 真机的小伙伴,想在 iOS 模拟器上安装 app 测试可不是那么容易的事情。

    3.5.1 启动 iOS Simulator

    1. Xcode>Open Developer Tool>iOS Simulator,打开后在 hardware 里面选对应 的 iPhone 版本就能启动模拟器了

    在这里插入图片描述

    1. 第二种方法,通过指令启动模拟器:
      $ xcrun instruments -w ‘device name’
      注意:==这里的 device name 一定要是这种格式:iPhone 6 (10.3) ==
      在这里插入图片描述

    3.5.2 拿到.app 包

    1. 这里科普下,在真机上是安装.ipa 的包,在模拟器上 是安装.app 的包

    这是两种不同的打包方法,也就是说从 appstore 这种渠道下载的.ipa 是无法安 装到模拟器上的,必须要找你们开发专门针对 iOS 模拟器打个模拟器的包,后缀 是.app

    1. 以 https://github.com/appium/sample-code.git 这里的一个.app 包为例, 在路径/sample-code/apps/TestApp/build/release-iphonesimulator 下有个 TestApp.app

    这种才是可以直接安装到 iOS 模拟器上的
    在这里插入图片描述

    1. 通过指令安装到模拟器上:
      $ xcrun simctl install booted /path/to/xxx.app
      P.S.:/path/to/xxx.app 这个是.app 包的绝对路径,可以输入前面的指令,然 后找到这个包,直接拽到终端就行
      在这里插入图片描述

    2. 卸载 app 的指令:
      $ xcrun simctl uninstall booted xxx.app
      xxx.app 就是包名,这里不需要路径,如:TestApp.app

    3.5.3 xcode-select

    1. 要 是 遇 到 xcrun 报 错 :xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist

    就根据报错提示,输入提示的指令解决

    $ sudo xcode-select --switch path/to/Xcode.app

    同样,这里 path/to/Xcode.app 也是 Xcode 在application 里的绝对路径,直接 找到图标拽到终端就行

    1. 或者输入这个也可以:

    $ xcode-select --install
    在这里插入图片描述

    总结

    几个坑大家注意一下

    1. 在 iOS 模拟器上必须是通过 xcode 打出来的.app 的安装包,真机的包(.ipa) 选择 Debug-iphone os,模拟器的包(.app)选择 Debug-iphone Simulator

    2. 有以下几个方法都能安装到模拟器上:
      –运行脚本,会自动安装上去
      –通过指令安装,也就是这篇讲的
      –通过 appium 上的配置也能安装,下篇讲 appium 调试 app 时候定位元素
      –要是会 xcode,可以直接拿到拿到源码,用 xcode 直接运行上去

    3.6 查看 iOS 上 app 元素

    前言

    学 UI 自动化首先就是定位页面元素,玩过 android 版的 appium 小伙伴应该都知 道,appium 的windows 版自带的 Inspector 可以定位 app 上的元素
    Mac 版的 appium1.6 的版本在 UI 上有了很大的改变,本篇详细解决如何使用 appium1.6 定位 iOS 的app 页面元素

    3.6.1 Start New Session

    1.启动 appium 后点 Start New Session
    在这里插入图片描述

    2.打开后看到如下界面。
    在这里插入图片描述

    3.6.2 Desired Capabilities

    1. Desired Capabilities 这里的配置,参考上文源码案例这篇里面启动 app 的代码
     class SimpleIOSTests(unittest.TestCase): 
    
    def setUp(self):
     # set up appium 
     app =
     os.path.abspath('../../apps/TestApp/build/release-iphonesimulator/Tes tApp.app') 
      self.driver = webdriver.Remote( 
       command_executor='http://127.0.0.1:4723/wd/hub',
       desired_capabilities={
        'app': app, 
        'platformName': 'iOS',
        'platformVersion': '10.1', 
        'deviceName': 'iPhone 6'
        }) 
    def tearDown(self):
     self.driver.quit() 
    

    这里主要有四个参数:
    app、platforrmName、platforrmVersion、deviceName
    在 appium 上需多加一个参数automationName > appium1.6
    以前的版本是基于 uiautomation 框架的,1.6 以后的版本是基于 facebook 的XCUITest,所以这个参数必须添加

    • app: 这里的地址是本地.app 包的绝对路径
    • platforrmName: iOS 系统版本号
    • platforrmVersion: iPhone 设备名称
    • platforrmVersion: iOS 系统
    • automationName: XCUITest
    1. 在 Desired Capabilities 先填入对应的参数后,右侧会自动生成 JSON Representation
      在这里插入图片描述

    2. 填好配置后,为了下次方便使用,可以点 Sav As …按钮保存设置
      在这里插入图片描述

    3.6.3 Inspector

    1. Start Session 就能启动 Inspector 界面了
      在这里插入图片描述

    2. 接下来就可以定位 app 上的元素了
      在这里插入图片描述

    后话

    在学习过程中有遇到疑问的,可以点击并输入暗号:CSDN
    下篇干货预警
    在这里插入图片描述

    展开全文
  • 安装配置Appium环境安装appium安装appium有两种方式,一种是通过命令行终端方式,一种是Appium Desktop。这里推荐使用Appium Desktop方式,只需下载下来...这是实现自动化测试很重要的一步。驱动其实也集成在了Appi...
  • appium工作原理appium 在android端工作流client端也就是我们 test script是我们的webdriver测试脚本。中间是起的Appium的服务,Appium在服务端起了一个Server(4723端口),跟selenium Webdriver测试框架类似, Appium...
  • Appium自动化测试完整案例

    热门讨论 2015-08-26 09:45:38
    Appium自动化测试完整案例,讲的很详细,适合初学者
  • 不好意思,工作原因,鸽...环境搭建篇【appium】appium自动化入门之环境搭建(上) 书接上文【appium】appium自动化入门之API(上) 目录正文2.4 Remote 远程控制前言2.4.1 设置 IP2.4.2 访问地址2.4.3 配置测试机2.4.
  • (1)特点appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web应用和混合应用。>>“移动原生应用”是指那些用iOS或者 Android SDK 写的应用(Application简称app)。>>“移动...
  • IOS appium自动化测试python脚本
  • 这里是Appium自动化测试——iOS的相关资料,欢迎下载。
  • 悠悠出品,必属精品。一套非常适合入门appium自动化测试的测试工程师
  • APPIUM自动化测试例子:安卓系统仿真,调用计算器例子,安卓版本5.1.1,版本可以通过修改文档参数platformVersion更改
  • appium自动化系列

    2019-06-15 16:15:00
    appium自动化系列 https://mp.csdn.net/postlist/list/all?undefined=all&cate=8093261 转载于:https://www.cnblogs.com/highpointengineer/p/11027934.html
  • Appium自动化测试

    2019-05-09 20:40:48
    Appium自动化测试 一、为什么要自动化测试: 用户对软件体验要求的不断提升,影响软件开发组织对app质量要求越来越高。重复性工作能不能自动化呢?或者要求部分工作自动化? App开发是一个迭代的过程,自动化测试...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,686
精华内容 3,474
关键字:

appium自动化