一、将测试机连接电脑,手机上会有一些提示,总之都允许就可以了,开始USB调试模式,之后打开cmd,输入adb devices,查看手机是否成功连接,如下图所示:

上图中可以看到,有一台设备已经成功连接了电脑;

二、打开pycharm,新建一个python文件,输入一段测试脚本(实现功能:让手机打开计算器并输入2018,然后关闭计算器)

  • caps = {}
    caps["platformName"] = "Android" # 平台名称
    caps["platformVersion"] = "5.1.1" # 设备系统的版本号
    # caps["deviceName"] = "127.0.0.1:62001"# 夜神虚拟机
    caps['deviceName'] = '50f98a9f' # 手机型号
    caps["appPackage"] = "cn.qysxy.daxue"
    caps["appActivity"] = ".modules.login.LoginActivity" driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', caps)

如何获取appPackage和appActivity的信息,这里有一个极为实用的命令:adb shell dumpsys activity |find "mFocusedActivity"

这个命令很有可能对于Android8.0不适用,别慌,还有一个命令,适合手机中已经安装的应用(如淘宝、微信、QQ等),命令:adb shell dumpsys window w|findstr \/|findstr name=

因为当前已经连接了手机,随意打开手机里的一个app,如计算器,打开cmd,输入以上命令回车,如图所示

红框中的信息“.modules.login.LoginActivity”就是此app的appActivity。

"cn.qysxy.daxue"就是appPackage

此外,还要设置一下Pycharm中settings中的Project Interpreter,一定要选择本地python的安装路径,默认不是本地的python!!!

三、启动Appium(建议以管理员身份启动Appium),点击安卓图标进行设置,如图所示:

ps:No Reset--控制每次运行是否从重新安装app开始

四、点击设置图标,进行如下设置,如图所示:

ps:Override Existing Session--将服务的session配置成可重写(非必要设置)

五、接下来,启动Appium服务,等下控制台输出以下信息:

六、通过pycharm运行我们编写好的测试脚本,(注意观察手机动作),执行结束后会在Appium日志台输出以下信息则说明测试成功:

PS:从运行脚本开始,手机的动作是这样的:首先安装appium settings和unlock程序,然后打开计算器,输入2018,最后关闭计算器,操作结束;

Appium+Python+Pycharm如何创建并运行自动化测试脚本【真机运行】的更多相关文章

  1. 如何在 iOS 真机运行 Appium

    使用 gui 启动的 appium 1.2.2 也会有这个问题,所以你要把 deviceconsole 复制到 /Applications/Appium.app/Contents/Resources/ ...

  2. Appium移动端自动化测试-安卓真机+模拟器启动

    一.环境准备 appium-pythin-client版本(0.17),selenium版本(2.53.6)(版本需对应,否则执行脚本可能出错,我用的是这两个版本) macOs版本10.14.1(ap ...

  3. 二.Android手机自动化测试真机运行

    手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在搞定了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例.期间也遇到了不少问题,不过最终还是搞定了,现 ...

  4. 第四章 Appium真机运行测试用例讲解

    -----手机自动化之Appium 手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在第二章我们讲到了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例 ...

  5. Appium学习之驱动真机运行

    一.Appium工具的简单原理 Appium工具可以分为:客户端(appium-client).服务端(appium-server)和移动设备端(模拟器或者真机).客户端支持多语言,如:python- ...

  6. 安卓第一课:android studio 的环境搭建与真机运行以及遇到的问题

    AS的下载: https://developer.android.com/studio/index.html AS的安装: android studio, sdk, virtual device都要安 ...

  7. ;~ 并发运行的AutoHotkey脚本真机实际测试模板参考20191010.ahk

    ;~ 并发运行的AutoHotkey脚本真机实际测试模板参考20191010.ahk;~ 2019年10月10日;~ 徐晓亮(aahk6188);~ 操作系统测试环境: Windows 7 专业版 3 ...

  8. ReactNative真机运行指南

    ReactNative真机运行指南 注意在iOS设备上运行React Native应用需要一个Apple Developer account并且把你的设备注册为测试设备.本向导只包含React Nat ...

  9. ionic ios项目真机运行-不用开发者账号

    ionic ios项目真机运行-不用开发者账号 1. 添加ios平台 ionic platform add ios 2.使用XCODE打开项目 3.使用APPID登录XCODE 打开XCODE账号登录 ...

随机推荐

  1. jQuery瀑布流插件masonry

    项目要做荣誉证书的排版,宽度是统一的,但是高度不一致 采用瀑布流的效果来实现 默认先实现前15张,点击按钮再加载全部剩下的数据 效果图 首先是html部分,写好样式 <!-- 荣誉资质 --&g ...

  2. Android在Activity中与Fragment中创建自定义菜单的区别

    区别就在这里,Activity中添加菜单要这样: public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R ...

  3. .net core 3.0 swagger

    1.安装swagger包 2.startup里configservers Configure 3.可能出现的错误 提示error  xxxxnot found 由于我创建的webapi是restful ...

  4. python3-cookbook笔记:第六章 数据编码和处理

    python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...

  5. Html介绍,认识html标签

    什么是网页?网页就是我们我们提前写好的代码样式经过浏览器的渲染展示出来的样式效果.其实我们常说的上网就是浏览各式各样的网页,这些网页都是由html标签组成,下面就是一个简单的网页,效果图如下: 简单看 ...

  6. Ubuntu 搭建phpcms

    安装Apache2 $ sudo apt-get update -y $ sudo apt-get install apache2 -y $ sudo systemctl start apache2. ...

  7. [大数据技术]Kettle初次连接MySQL数据库 报错问题 错误连接数据库 Error occured while trying to connect to the database Exception while loading class org.gjt.mm.mysql.Driver

    报错内容如下: 错误连接数据库 [foodmartconn] : org.pentaho.di.core.exception.KettleDatabaseException: Error occure ...

  8. Postman测试上传MultipartFile文件

    单个文件上传 后台代码 //导入excel @PostMapping("/import") public Result excelImport( @RequestParam(&qu ...

  9. 有意思的GitHub项目

    1.强大而又优雅的运维一键自动化管理工具,朋友公司在做,大牛支持,墙裂推荐 官方网站:http://www.bigops.com/ 2.用 PHP 写一个命令行音乐搜索下载器,支持 QQ.网易.酷狗. ...

  10. NODEJS 使用 sqlite3 本地文件数据库

    npm install sqlite3 var sqlite3 = require('sqlite3').verbose();var db = new sqlite3.Database('WebFil ...