app自动化测试的第一步,是启动被测app。appium环境搭建好后,我们就可以连接真机启动app了。环境为windows,Appium1.18.0,Android手机,被测app为今日头条app,让我们开始吧。

一,连接手机(测试机)

  • 通过USB线连接Android手机和电脑,打开手机的开发者模式,开启USB调试模式(方法自行百度)。

  • 打开cmd输入命令adb devices,显示连接手机的udid即为连接成功。

  • 输入adb devices后如果List of devices attached下为空,说明手机连接电脑没有成功。可做如下尝试:

    1,拔掉手机重新连接

    2,更换USB线

    3,重启adb。先杀死adb进程adb kill-server,再重启adb start-server

    4,检查adb版本,版本太低则更新

    还未解决的话,可以网上查找其他方法。

二,获取测试手机及被测app的相应信息(即capability配置内容)

  • platformName,声明被测手机系统是ios还是Android。

  • platformVersion,即测试手机的Android版本号。可在手机设置里面查看,也可以通过命令adb shell getprop ro.build.version.release查看。

  • deviceName,即测试手机的名称。可在手机设置里面查看,也可以通过命令adb devices -l查看,其中model即为连接的测试机的名称。

  • appPackage,即被测app的包名。

  • appActivity,即被测app的launcherActivity。通过命令adb shell dumpsys activity | findstr “mResume”查看(先在手机上打开app,再输入命令)。以今日头条app为例。

    如果手机系统在Android 8.1以下,则需使用命令adb shell dumpsys activity | findstr “mFocus”查看。

三,appium启动app

  • 电脑打开appium,点击“Start Server”

  • 出现如下页面,再点击“Start Inspector Session”按钮

  • 输入第二步获取的配置内容,点击“Start Session”按钮(可先点击3所指的按钮保存,下次直接选择即可)。

  • 此时,如果测试机是第一次连接appium的话,手机上会提示安装两个应用:Appium settings、io.appium.uiautomator2.server,容许安装,且必须安装成功。

  • 再次点击上图中4所指的“Start Session”按钮,我们会发现手机上会自动启动今日头条app,且appium会出现如下窗口。

    至此,我们就成功地通过appium启动了测试机上的app。我们可以在这个页面查看app当前页面的元素的属性,如下图,3所指便是弹窗【我知道了】按钮的元素属性,用于后面自动化测试过程中元素定位。

写作不容易,帮忙点个赞哟!

Python+Appium自动化测试(2)-appium连接真机启动app的更多相关文章

  1. appium-java,连接真机启动微信

    1.启动appium 2.设置信息 3.设置IP和端口 4.appium连接手机,微信中打开debugx5.qq.com,信息->TBS settings->是否打开TBS内核Insper ...

  2. MAC本上appium连接真机

    简单介绍一下appium连接ios真机测试环境的软件安装及配置过程: 目前我用的是desktop版本的appium, 所以MAC版本必须要升级到10.12以上,Xcode版本必须要在8.0以上,否则亲 ...

  3. Appium 小白从零安装 ,Appium连接真机测试。

    以下是我个人在初次安装使用Appium时的过程,过程中遇到了一些问题,在这里也一一给出解决办法. Appium安装过程 先安装了 Node.js.在node的官网上下载的exe安装文件. 在node的 ...

  4. appium通过WiFi连接真机进行测试

    http://www.th7.cn/Program/Android/201507/514602.shtml appium通过WiFi连接真机进行测试   2015-07-24 19:43:07CSDN ...

  5. Appium移动端自动化测试--搭建模拟器和真机测试环境

    详细介绍安装Android Studio及Android SDK.安装Appium Server. 文章目录如下 目录 文章目录如下 模拟器--安装Android Studio及Android SDK ...

  6. Appium——连接真机,adb devices获取不到设备号

    连接真机后,使用 adb devices获取不到设备号. 1.检查usb接口是否正常,是否正常链接到电脑 2.手机开发者模式是否开启,usb调试是否开启 3.检查驱动是否正常 4.如果驱动显示黄叹号, ...

  7. APPium连接真机输入框中输入的内容与代码中不一致

    今天解决了上一个问题,又碰到了一个新的问题. 问题:连接真机输入框中输入的内容与代码中不一致. 描述: 想实现登录页面输入用户名和密码自动登录,可是在输入用户名和密码的框中输入的内容总是与代码中的不一 ...

  8. MAC电脑下Appium + python3 + robotframework ios的真机测试环境搭建

    本人的环境搭建前的准备,MAC电脑一台(macOS Mojave 10.14.0及以上),Xcode 10.0及以上   ,自己注册的一个Apple ID 账户,必须你的电脑能连接互联网,最好不要用公 ...

  9. 关于appium操作真机打开app之后无法定位页面元素的问题的解决办法

    appium操作真机打开app后无法定位页面元素:例如微信或者支付宝支付时,手机的安全控件会对支付环境进行保护,会断掉当前appium与真机的链接,导致连接失败,无法定位到页面元素,在做ui自动化之前 ...

随机推荐

  1. YoloV4当中的Mosaic数据增强方法(附代码详细讲解)码农的后花园

    上一期中讲解了图像分类和目标检测中的数据增强的区别和联系,这期讲解数据增强的进阶版- yolov4中的Mosaic数据增强方法以及CutMix. 前言 Yolov4的mosaic数据增强参考了CutM ...

  2. Activiti7 任务人员动态分配(理论)

    之前一直用的流程模型都是,固态的,写死的 由于固定分配方式,任务只能一步一步执行,执行到每一个任务将按照bpmn的配置去分配任务负责人.这显然在实际开发中是不可能的 所以我们需要动态分配人员 表达式分 ...

  3. C002:计算球体体积(半径固化)

    程序: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { float sphereRadius=10.0f; f ...

  4. 如何解决SpringBoot工程中的错误:java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required

    出错原因:MySQL依赖及MySQL驱动包高于在使用的MySQL数据库版本. 比如,我本地数据库版本是:Server version: 5.2.3-falcon-alpha-community-nt ...

  5. centos开放指定端口

    1.开启防火墙      systemctl start firewalld 2.开放指定端口       firewall-cmd --zone=public --add-port=1935/tcp ...

  6. hyperledger explorer 结合 fabric1.4 搭建 区块链浏览器 踩坑记录

    博主通过这篇博客的步骤搭建区块链浏览器:https://blog.csdn.net/qq_32675427/article/details/99946945 进行到下面这一步时出现各种异常,浪费了博主 ...

  7. 操作BOM对象

    操作BOM对象 目录 操作BOM对象 1. 浏览器介绍 2. window 3. Navigator(不建议使用) 4. screan 5. location(重要) 6. document(内容:D ...

  8. Java实现获取命令行中获取指定数据

    执行ipconfig /all获取主机所有网卡信息并分析这些字符串,提取出有效网卡(网卡名称,mac地址,ipv4地址,掩码,网关,dns)将网卡插入HashMap中,key是网卡的名称,value是 ...

  9. Java单例模式的实现与破坏

    单例模式是一种设计模式,是在整个运行过程中只需要产生一个实例.那么怎样去创建呢,以下提供了几种方案. 一.创建单例对象 懒汉式 public class TestSingleton { // 构造方法 ...

  10. Java基础之LinkedHashMap原理分析

    知识准备HashMap 我们平时用LinkedHashMap的时候,都会写下面这段 LinkedHashMap<String, Object> map = new LinkedHashMa ...