这里写目录标题

  • Speedtest简介
  • Appium环境搭建
  • 手机连接测试
  • 编写自动化代码
    • APP的包名和Activity获取方法
  • 开始执行

Speedtest简介

Speedtest是一款专业测速的软件,可以对当前网络的上传,下载速度进行测试。近期有以下需求,需要重复点击开始按钮,不间断地对网络质量进行测试。人工操作的话,需要占用大量的时间。

能否自动化呢?移动端自动化测试Appium来了!

Appium环境搭建

参考白月黑羽大佬的博客: 点我跳转

主要由三个模块构成,Appium-client,Appium-Server,和设备组成。

  • 自动化程序

自动化程序是由我们来开发的,实现具体的手机自动化功能。

要发出具体的指令控制手机,也需要使用 客户端库。

Appium 组织 也提供了多种编程语言的客户端库,包括 Java,Python,js, Ruby等,我们使用的是Python。

我们需要安装好客户端库,调用这些库,就可以发出自动化指令给手机。

  • Appium Server

Appium Server 是 Appium 组织开发的程序,它负责管理手机自动化环境,并且转发 自动化程序的控制指令 给 手机,并且转发 手机给 自动化程序的响应消息。

  • 手机设备

我们这里说的手机设备,其实不仅仅是手机,包括所有 苹果、安卓的移动设备,比如:手机、平板、智能手表等。

为了直观方便的讲解,这里我们简称: 手机

当然手机上也包含了 我们要自动化控制的 手机应用APP。

手机设备为什么能 接收并且处理自动化指令呢?

因为,Appium Server 会在手机上 安装一个 自动化代理程序, 代理程序会等待自动化指令,并且执行自动化指令。

比如:要模拟用户点击界面按钮,Appium 自动化系统的流程是这样的:

自动化程序 调用客户端库相应的函数, 发送 点击元素 的指令(封装在HTTP消息里)给 Appium Server

Appium Server 再转发这个指令给 手机上的自动化代理

手机上的自动化代理 接收到 指令后,调用手机平台的自动化库,执行点击操作,返回点击成功的结果给 Appium Server

Appium Server 转发给 自动化程序

自动化程序了解到本操作成功后,继续后面的自动化流程

其中,自动化代理控制,使用的什么库来实现自动化的呢?

如果测试的是苹果手机, 用的是苹果的 XCUITest 框架 (IOS9.3版本以后)

如果测试的是安卓手机,用的是安卓的 UIAutomator 框架 (Android4.2以后)

这些自动化框架提供了在手机设备上运行的库,可以让程序调用这些库,像人一样自动化操控设备和APP,比如:点击、滑动,模拟各种按键消息等。

Appium支持多种变成语言,我使用的是Python,需要安装下面几个软件。

  • Python及相关IDE —— Anaconda官方链接
  • Appium-Python-Client (命令行键入)
pip install Appium-Python-Client

至此,Appium客户端相关程序安装成功

  • Node.js -下载链接
  • Appium-server下载链接

至此,Appium服务器相关程序安装成功

  • JDK8下载链接
  • Android SDK下载链接

至此,手机测试需要的一些工具包安装成功

  • Appium Inspector(元素定位的工具)下载链接

手机连接测试

环境搭建好啦!手机USB线连接电脑试试。

然后,手机进入开发者模式,打开调试功能 。

开发者模式进入方式:设置->系统设置->开发者选项,勾选开发者选项,USB调试


如果第一次使用开发者模式,可能会找不到该选项。进入“我的设备”,多次点击“软件版本号”,直至出现提示信息。

命令行输入下面命令,电脑识别出来USB连接的手机

adb devices

编写自动化代码

接下来开始编写程序,打开Jupyter Notebook

#导包
from appium import webdriver
from appium.webdriver.extensions.android.nativekey import AndroidKey
from appium.webdriver.common.appiumby import AppiumBy
import time#APP启动常用参数
desired_caps={"platformName":"Android", #Android or IOS"platformVersion":"9", #手机Android版本"deviceName":"***",#苹果必须,可选"appPackage":"org.zwanoo.android.speedtest", #APP的包名"appActivity":"com.ookla.mobile4.screens.main.MainActivity", #APP的activity名"unicodeKeyboard":False,#不使用系统自带的软键盘"resetKeyboard":True,#隐藏键盘"noReset":True,#每次重启APP,是否重置"newCommandTimeout":60000,"automationName":"UiAutomator2"
}#之所以加上try,catch,是因为程序还有些问题.每运行300秒,程序会自动崩溃
#代码改写后,每次遇到异常,会重启APP
while(1):#启动APPdriver = webdriver.Remote("http://localhost:4723/wd/hub",  #服务器ip端口desired_caps
)#设置隐式等待driver.implicitly_wait(60)try: #初次打开测速软件,需要搜索附近可用信号#等待20s再进行测速time.sleep(20)#循环执行for i in range(100):driver.find_element(by=AppiumBy.XPATH, value = '//android.view.View[@content-desc="Start a Speedtest"]').click() except Exception: driver.quit()print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))

APP的包名和Activity获取方法

手机打开Speedtest 软件,并放置在最上层

电脑命令行键入

adb shell dumpsys activity recents | find "intent={"


查询到的第一个intent就是Speedtest应用的相关信息,cmp后面跟的信息就是Speedtest的包名和activity名。

开始执行

首先,打开Appium服务器


点击startServer按钮

Appium-Server已启动

运行代码

speedtest演示视频

虽然代码能跑起来,基本可以满足需求,但是程序还存在5分钟重启一次的问题。

XDM,有什么问题,评论区相互交流哈!我也是刚接触Appium撒!

Appium实现Speedtest软件测速自动化相关推荐

  1. speedtest命令行linux,Linux通过命令行使用speedtest宽带测速

    Linux通过命令行使用speedtest宽带测速 Speedtest测试网络上传/下载速度还是挺不错的,windows下非常方便.Linux下也可以很方便的使用命令行speedtest来测试.spe ...

  2. Linux下 SpeedTest 工具测速

    1. 概述     目的: 用来测试开发板上的4G 模块网络上传和下载速度:     在Linux的命令行中使用speedtest-cli来测试宽带连接速度.speedtest-cli是一个使用pyt ...

  3. qq测试常用软件,测速软件有哪些_测速软件实用推荐

    在手机等设备的使用过程中,我们有时会发现网速非常的慢,这时,我们可以使用一款测速软件对我们的设备进行扫描测试,以便帮助我们更好的了解网速卡顿的问题,给我们的设备提速.那么,有哪些好用的测速软件呢?小编 ...

  4. linux网络诊断工具mtr;speedtest网络测速脚本

    安装mtr Debian & Ubuntu apt -y install mtr-tiny RHEL & CentOS yum -y install mtr 使用demo 第一列:显示 ...

  5. 又一国家级测速软件上线:绿色免费,支持5G 和千兆测速

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 很多小伙伴在上网的过程中,偶尔会遭遇网络使用卡顿,或网络出现波动的情况,如何才能让网路更加稳定?这时候大家可能会选 ...

  6. 电脑测速软件_联通你我【宽带提速】让网速飞!超实用的宽带测速提速攻略来啦!...

    宅在家里,在家娱乐. 在家办公.在家上课, 都需要畅快的宽带网络, 所以很多小伙伴都办理了 联通宽带 怎样才是正确的宽带测速姿势? 小沃给大家介绍两种简便的测速方法, 同时说说 怎样才能完全释放宽带网 ...

  7. 5g网速用什么软件测试手机,5G时代到底有多快?测速软件谁最靠谱?

    5G时代到底有多快?测速软件谁最靠谱? 2020-12-18 22:13:08 0点赞 0收藏 0评论 5G时代落地紧锣密鼓,如火如荼,整个网络社会经历了一场近乎高铁般的大提速.不过在这场大提速过程中 ...

  8. 测速源码_解密,相亲交友直播系统源码,高并发如何做到不卡顿

    视频直播已经进入下半场,大家关注的焦点已经从如何构建完善的直播平台,转入到精细化运营阶段.首先是用户对直播体验的要求越来越高,需要做到精细的人群划分,其次是用户基数大,并且网络情况复杂.所以,如何在巨 ...

  9. 测试网速_测速软件测试的网速真的准确吗?

    前些日子,朋友在某电信公司办理一条500M的家用宽带,邀请我去他家体验急速网络,我经不住他的再三邀请,欣然前往,一路上他一直在得瑟:不服跑个分!不服测个速!但是到了他家,就发现,跑分超级高,测速超级快 ...

最新文章

  1. 软件开发人员维护代码指南
  2. TCP/IP,Http,Socket的区别
  3. 如何在Python中捕获SIGINT?
  4. [Luogu1040] 加分二叉树
  5. 通过数组名遍历整个数组
  6. CVPR 2020 《Local-Global Video-Text Interactions for Temporal Grounding》论文笔记
  7. (三)CSS【不多说了,前端面试 CSS 是必考知识,不过关直接回家】
  8. objects jdk8_JDK 9:NotNullOrElse方法已添加到Objects类
  9. 看过无数 Java GC 文章,这 5 个问题你也未必知道!
  10. 看好你的数据库连接字符串!
  11. 使用Duilib做的程序封装成DLL的显示加载与卸载问题
  12. 玩玩直播,搭建一个流媒体服务器
  13. SQL查询本周过生日的同学,和下周过过生日的同学
  14. html重复渐变包括,html – CSS:当设置为tbody / thead时,在Chrome中重复的渐变
  15. xio you c语言 程序设计入门——函数的定义
  16. springboot实现pdf打印和预览
  17. 顺序主子式的英文翻译(定义)
  18. [面试题]1000瓶水中有1瓶是有毒的,问需要多少只老鼠才能试出那瓶有毒?
  19. linux c语言 写文件,linux c通过文件描述符以及write和read方法对文件进行读写
  20. 汽车电子(二)--- 车机娱乐系统介绍

热门文章

  1. Java面试必备MySQL知识(一)
  2. Android机顶盒连电脑,Android手机和机顶盒,确定当前的网络连接方式
  3. java版迅雷下载源码分享
  4. 【JavaSE】Java中的异常那些事儿
  5. 如何使用OpenCV+Python去除手机拍摄文本底色
  6. 超级实用的Oracle学习笔记
  7. [官方教程] 暗黑世界 客户端 配置文档
  8. 初刻拍案惊奇读书心得
  9. 状元快车家教机:跟步步高S6有哪些不同?
  10. 体验游戏,就在即刻!Google Play Instant