前言:

  • 测试的APP:亿通行
  • 手机型号:OPPO
  • 系统:安卓10

一、安装Python3.x

1.直接登录Python官网https://www.python.org/,下载最新版本即可

2.安装Pycharm(下载.exe,直接安装即可)

二、安装Python3 Appium库

1.打开Python3.x的安装目录,找到Scripts文件夹执行

pip install Appium-Python-Client

2.使用Pycharm安装

File → Settings → Project → Python Interpreter → 搜索Appium → 选择点击install即可

三、安装Android SDK 

直接进入官网下载Studio

https://developer.android.google.cn/studio/

注:需要注意的是安装过程,SDK要选择一个路径,这个要记住,后面会用的

四、安装JDK

直接进入官网下载

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

注:需要注意的是安装过程,jdk要选择一个路径,这个要记住,后面会用的

五、安装Appium

1.直接进入官网下载

http://appium.io/

2.安装后双击打开

3.点击Edit Configurations

4.配置路径

这两个路径就是在安装SDK与jdk的那两个路径,配置完成点击Save and Restart

5.点击Start Server

说明配置完成

6.点击Start Inspector Session

7.输入设备信息

配置信息说明

{
"platformName": "Android",    # 测试的平台,安卓或者ios
"platformVersion": "10", # 系统版本,此处代表安卓10
"deviceName": "OPPo", # 设备名称,填手机型号就行,随便填也可
"app": "C:\Users\xxx\Downloads\com.ddnapalon.calculator.gp_3.1.33_999349.apk", # app的安装包的位置
"appPackage": "enfc.metro", # app的包名
"appActivity": "enfc.metro.main.MainActivity" # app的activity名
}

8.配置完成点击Start Session,进入如下图

9.补充

六、编写测试脚本

1.脚本

from appium import webdriver
from selenium.webdriver.common.by import By
from time import sleep # 配置信息,字典类型,直接复用上面的 Appium json就可以
desired_caps = {
"platformName": "Android",
"platformVersion": "10",
"deviceName": "OPPo",
#"app": "C:\\Users\\xxxx\\Downloads\\com.ddnapalon.calculator.gp_3.1.33_999349.apk",
"appPackage": "enfc.metro",
"appActivity": "enfc.metro.main.MainActivity"
} # 传入appium server的host+path,还有配置信息
driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities=desired_caps)
#取消授权弹框
driver.find_element(By.ID,'com.android.permissioncontroller:id/permission_deny_button').click()
sleep(1) #点击立即登录
driver.find_element(By.ID,'enfc.metro:id/tv_QrCode_Login_Go').click() sleep(2) #点击账号密码登录 driver.find_element(By.ID,'enfc.metro:id/login_bt_loginType').click()
sleep(2) #输入手机号
driver.find_element(By.ID,'enfc.metro:id/login_et_phone').send_keys("18845632356")
sleep(2) #输入密码
driver.find_element(By.ID,'enfc.metro:id/login_et_sms').send_keys("123456") sleep(3)
# 退出测试
driver.quit()

2.Appium执行结果

3.手机运行效果

暂时无法上传(o(╥﹏╥)o)

七、ADB相关补充

1.点击此电脑,属性

2.点击高级系统设置,点击环境变量

3.找到SDK里tools和platform-tools的文件路径

4.环境变量界面,如图,在下方的系统变量中新建

5.输入变量名android 和 tools和platform-tools的文件路径,点击确定即可

6.在Path中添加刚刚的环境,选择系统变量Path,点击新建输入%android%,点击确定即可

7.cmd 输入 adb

出现此图配置完成

8.获取应用包名以及Activity

1.连接设备

2.在设备上打开想要查看包名的应用

3.输入adb shell dumpsys window | findstr mCurrentFocus

红色:应用包名

蓝色:启动Activity名

八、真机设置

点击设置 → 其他设置 → 开发者选项(打开开发者选项、打开USB调试、打开禁止权限监控)→ adb device(即可查看手机连接信息)

 至此,配置结束

                                                          to be continued...

Win Pycharm + Appium + 真机 实现APP自动化的更多相关文章

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

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

  2. Python+Appium自动化测试(2)-appium连接真机启动app

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

  3. appium 真机测试问题 出现 instruments crashed on startup

    1.appium 真机测试的时候 instruments crashed on startup,必须在真机上打开UI Automation 在设置里: Developer->Enable UI ...

  4. 免费开发者证书真机调试App ID失效问题:"Unable to add App ID because the '10' App ID limit in '7' days has been exceeded."解决方案(5月5号)

    免费开发者证书真机调试App ID失效问题:"Unable to add App ID because the '10' App ID limit in '7' days has been ...

  5. 5.Appium+真机Demo

    1.连接真机后,执行代码时出现错误:A new session could not be created. (Original error: Could not extract PIDs from p ...

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

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

  7. [python]Appium+python +pytest 实现APP自动化,基于安卓

    1.安卓环境搭建 &关于app自动化,个人觉得安装过程比较复杂,脚本难度实现和web自动化差不多封装关键字即可,因此,下面会写安装.启动APP以及过程中遇到的一些坑(这一篇偏向解释给个人) & ...

  8. python+appium+真机测试

    appium环境搭建 操作系统: Windows 10 被测平台: Android真机 appium服务器: appium Desktop appium客户端: python-client 测试的AP ...

  9. iOS 真机测试 App installation failed

    真机测试的过程中,出现这种Bug This application's application-identifier entitlement does not match that of the in ...

  10. DELPHI XE5 UP2 无真机输出 APP并转换为IPA(实践整理)

    1.在Mac上配置开发环境(具体步骤请百度)   XCODE5.1+IOS7.1SDK+COMMAND LINE TOOLS   安装PlatformAssistant   买一个真机调试账号(实际测 ...

随机推荐

  1. commons-lang3

    字符串的处理类(StringUtils) //判断是否为空(注:isBlank与isEmpty 区别) StringUtils.isBlank(null);StringUtils.isBlank(&q ...

  2. js判断页面滚动到底部的时候,可以执行一些操作

    <script type="text/javascript">window.onscroll=function(){ var a = document.document ...

  3. 随便记录一些使用IDEA在ssm阶段的踩过的坑

    重命名中括号问题:需要重命名模块+目录 Intellij idea 报错:Error : java 不支持发行版本5_灵颖桥人的博客-CSDN博客_不支持发行版本5 idea中的目标字节码版本总是自动 ...

  4. springboot的websocket因IP问题无法连接

    首先遇到这个问题有点奇葩,出现在项目上线时的客户现场,头两天一直都无法确定原因,因为它的表现方式很奇怪,基于springboot实现的websocket,同样的代码在公司研发环境不会有问题,客户现场会 ...

  5. instanceof与类型转换

    instanceof与类型转换 package com.andy.base.oop.demo01.demo06; public class Teacher extends Person { } pac ...

  6. 解密Prompt系列3. 冻结LM微调Prompt: Prefix-Tuning & Prompt-Tuning & P-Tuning

    这一章我们介绍在下游任务微调中固定LM参数,只微调Prompt的相关模型.这类模型的优势很直观就是微调的参数量小,能大幅降低LLM的微调参数量,是轻量级的微调替代品.和前两章微调LM和全部冻结的pro ...

  7. 分布式搜索-elasticsearch

    学习黑马- SpringCloud微服务技术栈项目的分布式搜索章节自行整理的笔记,方便日后的重构. 项目涉及技术 知识点是按照集数依次整理,方便日后回来查找. 考虑到不是固定的联网方式,时而WiFi, ...

  8. Centos 7配置使用nginx反向代理mysql

    背景:由于WEB服务和MySQL数据库服务分开部署的,由于网络问题限制,有时需要通过中间代理服务器跳转连接MySQL,所以需要在中间服务器上配置代理. 1.添加stearm模块 # nginx通常代理 ...

  9. Oracle 服务器概念梳理

    Oracle 公司是世界上最大的信息管理软件及服务提供商,因其复杂的关系数据库产品而闻名.Oracle 的关系数据库是世界上第一个支持 SQL 语言的数据库.支持服务器/客户机等部署.Oracle 数 ...

  10. 实现一个CRDT工具库——PSet

    PSet 这段代码实现了一个PSet,即Positive Set,是GSet的扩展.PSet是一个集合,支持添加和删除元素,但是不支持重复元素.PSet的实现是通过两个GSet来实现的,一个GSet存 ...