Python+Appium自动化测试(15)-使用Android模拟器(详细)(一)

简介: 做APP的UI自动化测试时,我们往往会使用真机跑自动化测试脚本,因为这样才是最真实的使用场景。但前期调试脚本的话,可以先使用模拟器,这样相对更加方便。不推荐使用Android SDK里自带模拟器,太卡。这里介绍两款我正在用于做自动化测试的模拟器:Genymotion 与 夜神模拟器。

一,Genymotion


1,注册账号


使用Genymotion时需要登录账号,我们需要去Genymotion官网注册账号。

官网地址:https://www.genymotion.com/

官网首页点击【Sign In】

微信图片_20220424195751.png

进入登录页面后点击【Create an account】,进入注册页面,填写信息注册账号。

微信图片_20220424163422.png


2,下载Genymotion


官网下载地址:https://www.genymotion.com/download/

这里我选择下载第一个,即with VirtualBox,电脑已安装了VirtualBox的话则下载第二个。

微信图片_20220424163432.png


3,安装Genymotion


3.1,双击下载好的exe文件,选择好安装路径(或默认),然后一路点击next即可。

安装过程中会提示安装VirtualBox,同样的,选择好安装路径(或默认),一路点击确定即可。

安装完成后桌面会出现以下3个图标

微信图片_20220424163436.png

3.2,双击Genymotion打开,输入注册好的账号登录,点击NEXT按钮。

微信图片_20220424163439.png

3.3,选择Personal Use,点击NEXT。(当然有购买证书的话选择 I have a license也行)

微信图片_20220424163444.png

3.4,勾选协议,点击NEXT。

微信图片_20220424163447.png

然后就进入到了Genymotion首页

微信图片_20220424163451.png


4,创建虚拟设备


4.1,点击页面右上角“+”,进入选择设备页面。

微信图片_20220424163455.png

4.2,下拉滑动可查看选择不同的机型与系统版本,大家可根据需要自行选择下载。

注意:因为后面会安装的ARM转换工具Genymotion-ARM-Translation暂时只支持最高android 8.0,所以我这里选择Samsung Galaxy S8 系统为Android 8.0,点击NEXT,跳转至下一个页面。

微信图片_20220424163459.png

4.3,该页面下,我们可以给设备重新命名,选择分辨率、系统版本等配置,填写选择好后,点击右下角 "INSTALL" 按钮。我这里全部选择默认,点击安装。

微信图片_20220424163503.png

然后页面显示正在下载,下载需要点时间,耐心等待即可

微信图片_20220424163507.png

4.4,安装完成后,双击该设备即可启动,或如下图步骤点击也可启动。

微信图片_20220424163510.png

4.5,启动后界面如下。每次打开后要确保图中所指的wifi图标是连接状态,否则不能联网。

微信图片_20220424163513.png


5,安装app


5.1,将下载好的apk文件拖动到模拟器界面,即进行安装。

5.2,首次安装APP时通常会出现以下提示:Genymotion device cannot run ARM instructions,如下图

微信图片_20220424163518.png

原因:Genymotion模拟器基于x86,不能运行基于ARM架构的APP。

解决方法:安装3.2中提到的ARM转换工具Genymotion-ARM-Translation。

支持android 8 的Genymotion-ARM-Translation下载地址如下

链接:https://pan.baidu.com/s/1_q31jqIbWubHzGU__IKnmA

提取码:s5gn

下载完成后,将该压缩文件拖到模拟器即可安装,点击OK,安装完成后重启模拟器即可。

微信图片_20220424163521.png

5.3,继续安装app,以安装今日头条APP为例。

在今日头条官网下载今日头条app,拖动至模拟器,等待安装完成即可。安装完成后,打开如下:

微信图片_20220424163524.png

5.3,查看模拟器设备id

在模拟器打开的情况,cmd输入命令:adb devices,可以查看该模拟器的设备id,如下:

微信图片_20220424163528.png


6,python+appium启动Genymotion模拟器中的APP


6.1,获取模拟器的设备信息,以及被测app的信息(以今日头条APP为例)。获取方法跟博客appium连接真机启动app中第二部分的方法一样。

6.2,根据获取到的参数信息,编写示例脚本如下:

# -*- coding:utf-8 -*-
# @author: 给你一页白纸
from appium import webdriver
desired_caps = {
    "platformName": "Android",
    "platformVersion": "8.0",
    "deviceName": "Samsung Galaxy s8",
    "appPackage": "com.ss.android.article.news",
    "appActivity": ".activity.MainActivity",
    "unicodeKeyboard": True,
    "resetKeyboard": True,
    "noReset": True,
}
# 启动app
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

启动appium服务,再运行脚本,可以看到被测app被启动。

注意:点击APP打开时可能会出现:xxx keeps stopping,导致打不开APP,如下图。

微信图片_20220424163532.png

这种情况暂时没有找到解决方法。在公司测试自己的APP时,为了避免出现这种情况,不要在模拟器里安装从应用市场下载来的APP,而是安装自己在本地打的release包,或者直接让开发给你打包一个用于测试的app,这样是可以打开的。

相关文章
|
2天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
21 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
2天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
24 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
36 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
3月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
188 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
4月前
|
Java 测试技术 C#
自动化测试之美:从Selenium到Appium
【10月更文挑战第3天】在软件开发的海洋中,自动化测试如同一艘航船,引领着质量保证的方向。本文将带你领略自动化测试的魅力,从Web端的Selenium到移动端的Appium,我们将一探究竟,看看这些工具如何帮助我们高效地进行软件测试。你将了解到,自动化测试不仅仅是技术的展示,更是一种提升开发效率和产品质量的智慧选择。让我们一起启航,探索自动化测试的世界!
|
5月前
|
Java 测试技术 Android开发
Android性能测试——发现和定位内存泄露和卡顿
本文详细介绍了Android应用性能测试中的内存泄漏与卡顿问题及其解决方案。首先,文章描述了使用MAT工具定位内存泄漏的具体步骤,并通过实例展示了如何分析Histogram图表和Dominator Tree。接着,针对卡顿问题,文章探讨了其产生原因,并提供了多种测试方法,包括GPU呈现模式分析、FPS Meter软件测试、绘制圆点计数法及Android Studio自带的GPU监控功能。最后,文章给出了排查卡顿问题的四个方向,帮助开发者优化应用性能。
318 4
Android性能测试——发现和定位内存泄露和卡顿
|
5月前
|
测试技术 Shell Android开发
Android 性能测试初探 (六)
本节聊聊性能测试的最后一项- 流量,当然我所指的性能测试是针对大部分应用而言的,可能还有部分应用会关注网速、弱网之类的测试,但本系列文章都不去一一探讨了。
80 6
|
5月前
|
JavaScript 测试技术 Android开发
Android 性能测试初探 (四)
本文介绍了GPU在移动端性能测试中的重要性,并详细解释了过度绘制、帧率和帧方差的概念。针对GPU测试,文章列举了三项主要测试内容:界面过度绘制、屏幕滑动帧速率和平滑度。其中,过度绘制测试需遵循特定标准,而帧速率和平滑度测试则可通过软件或硬件方法实现。在软件测试中,使用Systrace插件和高速相机是两种常用手段。对于不同机型,帧率及帧方差的测试标准也需相应调整。
79 5
|
5月前
|
测试技术 Shell Android开发
Android 性能测试初探 (三)
本文承接《Android性能测试初探(二)》,深入探讨CPU与内存测试。介绍了移动端内存测试的重要性及其测试目标,并详细列举了不同状态下应用内存消耗情况的测试项目。此外,还提供了多种内存测试方法,包括使用`procrank`等工具的具体操作步骤。最后,文章也简要提及了CPU测试的相关内容,帮助读者更好地理解Android性能测试的关键要素。
71 5
|
5月前
|
敏捷开发 Java 测试技术
探索自动化测试的奥秘:从Selenium到Appium
【9月更文挑战第14天】软件测试,这个看似枯燥乏味却至关重要的领域,正经历着一场革命。随着技术的进步,自动化测试工具如Selenium和Appium已成为质量保证的利器。本文将带你一探这些工具的神秘面纱,了解它们如何简化测试流程、提升效率,并确保软件产品的质量。准备好,我们将深入自动化测试的世界,解锁其背后的原理和实践技巧。

热门文章

最新文章

  • 1
    如何修复 Android 和 Windows 不支持视频编解码器的问题?
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
  • 4
    【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
  • 5
    APP-国内主流安卓商店-应用市场-鸿蒙商店上架之必备前提·全国公安安全信息评估报告如何申请-需要安全评估报告的资料是哪些-优雅草卓伊凡全程操作
  • 6
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 7
    Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
  • 8
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
  • 9
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
  • 10
    os-copilot安装_配置_功能测试全集