【App自动化测试】(十八)多设备管理平台——openSTF
目录
- 1. openSTF
- 2. openSTF的安装部署
- 2.1 MacOS
- 2.2 Windows
- 3. STF操作
- 3.1 基础操作——远程调试虚拟设备
- 3.2 高阶操作——远程调试真机
1. openSTF
OpenSTF:是一个手机设备管理平台,可以对手机进行远程管理、调试、远程手机桌面监控等操作。
特点:通过无线来进行远程管里、调试、监控
优点:STF的核心就是远程,它比本地多出很多优势,它可以构建一个测试平台的,这个平台可以连接多个设备,这些设备可以把放在同一个局域网内的远程调试。当我们把局域网的一些必要端口(比如说机器远程调试端口5555,openSTF网页端7100等)暴露到公网上,我们就可以实现一个跨地点的设备调试,这样就不用带着多个设备到处跑了。
2. openSTF的安装部署
对于Windows系统openSTF的安装是一个大难点,使用docker安装比较好。
2.1 MacOS
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config
2.2 Windows
-
拉取镜像
docker pull openstf/stf:latest docker pull sorccu/adb:latest docker pull rethinkdb:latest -
启动rethinkdb
docker run -d --name rethinkdb -v [宿主机目录]:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090#示例: docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090注:
- rethinkdb一定要最先启动
- 要定要挂载目录,把容器目录保存到本地。
- 网络模式一定要选择好host模式
-
启动stf
docker run -d --name stf --net host openstf/stf stf local --allow-remote注:
- 在rethinkdb后启动
- 一定要加参数:
--allow-remote
-
启动adb:建议把本机的sdk设置成环境变量,不建议使用docker安装的adb
3. STF操作
3.1 基础操作——远程调试虚拟设备
-
第一步:浏览器访问:localhost:7100

-
第二步:运行一个AVD模拟器
-
第三步:在stf中可以查看对应模拟器,并进行控制模拟器,进行操作
-
网页显示已经有可操控的设备。
示例:

-
点击模拟器后,可以在web端直接控制模拟器或进行其他功能
示例:

-
3.2 高阶操作——远程调试真机
-
第一步:真机USB接入进行调试。打开手机的开发者模式。
示例:多了一个真机设备

-
第二步:打开手机的远程调试端口
#给手机开了一个5555的远程调试端口 adb -s [真机名称] tcpip 5555 restarting in TCP mode port:5555 -
第三步:查看真机远程调试IP
adb -s [真机名称] shell ifconfig #注:三星、华为等部分手机没有权限查看ifconfig。注意:无权限查看ifconfig的话。可以通过手机设置(WIFI)中查看ip地址,再查看本机ip地址,如果两个地址网段相同,可以确认二者属于同一网段,此时手机的IP地址可用。
-
第四步:连接手机IP
adb connect [手机IP]:5555示例:连接手机ip后再查询设备,可以发现列表中多了一个远程远程设备

-
第五步:把真机的USB链接线拔掉,STF仍然会出现机器,此时还可进行远程操作
示例:拔掉数据先,界面上还有一个真机

注意:真机的USB数据拔掉后,需要重新在连接一下远程IP。主要做以下操作:
adb connect 远程控制手机的IP:端口号
相关文章:
【App自动化测试】(十八)多设备管理平台——openSTF
目录 1. openSTF2. openSTF的安装部署2.1 MacOS2.2 Windows 3. STF操作3.1 基础操作——远程调试虚拟设备3.2 高阶操作——远程调试真机 1. openSTF OpenSTF:是一个手机设备管理平台,可以对手机进行远程管理、调试、远程手机桌面监控等操作。 特点&…...
Kafka的ACK配置含义详解
Kafka的ACK配置含义详解 Kafka producer有三种ack机制 初始化producer时在config中进行配置; 参数-1,0,1分别代表什么含义 ack等于0: 含义 意味着producer不等待broker同步完成的确认,只要继续发送下一条(批)信息 优缺点 提供了最低的…...
Redis主从架构、数据同步原理、全量同步、增量同步
目录 专栏导读一、Redis主从架构二、数据同步原理三、全量同步的流程三、可以从以下几个方面来优化Redis主从就集群四、全量同步和增量同步区别?五、什么时候执行全量同步?六、什么时候执行增量同步?七、超卖问题 大家好,我是哪吒…...
面了一个测试工程师要求月薪26K,总感觉他背了很多面试题...
最近有朋友去字节面试,面试前后进行了20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说,80%的人都会栽在第一轮面试,要不是他面试前做足准备,估计都坚持不完后面几轮面试。 其实&…...
大数据简介
大数据简介 什么是大数据 最近几年,IT行业最火的名词中,少不了"大数据"、"人工智能"、"云计算"、"物联网"、"区块链"等等这些名词。针对于"大数据"这个名词,现在更是全国老…...
Elasticsearch数据库
目录 1. 什么是ElasticSearch1.1 概念及特点1.2 ElasticSearch适用场景概述 2. 安装ElasticSearch2.1 下载安装包2.2 环境说明2.3 创建es的用户2.4 创建es存储位置2.5 安装es2.5 修改配置文件2.6 系统优化2.7 安装jdk环境2.8 切换es用户启动数据库2.9 systemctl管理2.10 访问 3…...
Axure教程—表格(中继器)
本文将教大家如何用AXURE中的中继器制作表格 一、效果介绍 如图: 预览地址:https://oc3e6a.axshare.com 下载地址:https://download.csdn.net/download/weixin_43516258/87854863?spm1001.2014.3001.5501 二、功能介绍 可以在表格中插入…...
Linux转HTTP代理服务器
在 Linux 上搭建 HTTP 代理服务器,可以使用 Squid 或者 Nginx 等软件来实现。以下是使用 Squid 搭建 HTTP 代理服务器的步骤: 1. 安装 Squid 在终端中输入以下命令安装 Squid: sudo apt-get update sudo apt-get install squid 2. 配置 Sq…...
CPLEX Studio 集成开发环境 (IDE) 介绍
CPLEX Studio 集成开发环境 (IDE) 介绍 参考B站视频:cplex入门到精通 1.CPLEX Studio IDE 实现的功能 IBM ILOG CPLEX Studio IDE 是一个用于数学规划、约束规划以及一般组合优化应用程序的集成开发环境。 它是适用于 OPL(优化编程语言)和…...
如何在Linux机器中测试存储/磁盘I/O性能?
在Linux环境中,了解存储/磁盘I/O性能对于评估系统性能和优化存储子系统非常重要。通过测试存储/磁盘I/O性能,我们可以确定磁盘的读写速度、延迟和吞吐量等指标。本文将介绍几种常用的方法来测试Linux机器中的存储/磁盘I/O性能。 方法一:使用d…...
ChatGPT国内免费使用方法【国内免费使用地址】
当下人工智能技术的快速发展,聊天机器人成为了越来越多人们日常生活和工作中的必备工具。如何在国内免费使用ChatGPT聊天机器人,成为了热门话题。本文将为你详细介绍ChatGPT国内免费使用方法,让你轻松拥有聊天机器人助手,提高工作…...
常微分方程ODE和Neural Ordinary Differential Equations
微分方程(英語:Differential equation,DE)是一種數學方程,用來描述某一類函数與其导数之间的关系。微分方程的解是一個符合方程的函數。而在初等数学的代数方程裡,其解是常数值。 常微分方程(英…...
C++ 编译过程(附简单实例)
C 采用分离编译模式,分离编译指的是,一个程序/项目是由若干个源文件共同实现,编译时先把每个源文件单独编译生成目标文件,再将所有目标文件连接起来,形成单一的可执行文件。 C 编译的四个阶段:预处理、编译…...
ThingsBoard教程(五四):规则节点解析 Azure IoT Hub Node, RabbitMQ Node
Azure IoT Hub Node Since TB Version 2.5.3 配置 主题 - 获取有关IoT Hub主题的更多信息,请使用以下链接。主机名 - Azure IoT Hub主机名。设备ID - 来自Azure IoT Hub的设备ID。凭据 - Azure IoT Hub连接凭据。可以是共享访问签名或PEM格式证书。Azure IoT Hub支持不同的…...
元素偏移量offset
文章目录 1. offset概述2. offset与style的区别 1. offset概述 offset就是偏移量,我们使用offset系列相关属性可以动态的得到该属性的位置(偏移)、大小等。 element.offsetParent 返回作为该元素带有定位的父级元素,如果父级都没…...
如何让自动化测试框架更自动化?
一、引言 对于大厂的同学来说,接口自动化是个老生常谈的话题了,毕竟每年的MTSC大会议题都已经能佐证了,不是大数据测试,就是AI测试等等(越来越高大上了)。不可否认这些专项的方向是质量智能化发展的方向&…...
无屏幕实现连接树莓派
无屏幕实现连接树莓派 欢迎来到我的博客!今天我将与大家分享如何无需使用屏幕,实现与树莓派的连接。对于那些在树莓派项目中不方便使用屏幕的人来说,这将是一个有用的技巧。 材料清单 在开始之前,让我们先准备好所需的材料&…...
【Android】AMS(一)系统启动流程
前言 AMS(Activity Manager Service)即活动管理器服务,是Android系统中的一个核心服务。它主要负责管理应用程序的生命周期,包括启动应用程序、切换应用程序、管理任务栈等。 Android启动流程 Android程序的启动流程可以概括为…...
FineBI6.0基础学习第一课 数据门户
PC端门户使用示例 首先,以管理员身份登录FineBI系统,安装数据门户,安装步骤见官网 新建一个数据门户...
如何部署项目到Tomcat + 第一个Servlet程序
博主简介:想进大厂的打工人博主主页:xyk:所属专栏: JavaEE初阶 目录 文章目录 一、Tomcat 1.1 Tomcat是什么 1.2 下载安装 1.3 部署项目 二、第一个Servlet程序 2.1 Servlet是什么 2.2 创建Maven项目 2.3 引入依赖 2.4 创建目录 2.5 编写类方法 2.6 打包…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
