本系列文章讲述的是一个系列的第二部分,最终可以搭建一整套设备远程管理平台,与stf不同的是,opendx搭建较为简单,而且由于底层是appium来支持的,所以,较容易支持ios,也容易支持更高版本的安卓机型,官方操作说明https://jiangyitao.gitee.io/opendx/guide/deploy.html,可以自行阅读,上一篇为https://www.cnblogs.com/xuezhezlr/p/15431265.html

  待环境变量都搞好之后,我们要开始下载opendx的代码了,他是使用git来管理的,其框架图如图所示,官方搭建文档:https://jiangyitao.gitee.io/opendx/guide/deploy.html

总的来看,该框架分为3部分,agent部署了appium并连接手机,收集数据截图和实时操作,上报数据给server,server接受数据并处理数据为一些对外接口,并有一个前端服务调用server展示相关数据,故本文也依次讲解,并最终可以在本地搭建一整套opendx平台框架,可以看到页面调试等信息。笔者在编辑后,根据过来人的经验,建议读者们按照server-agent-front的顺序按照搭建整体框架

1,server

git地址:https://github.com/opendx/server

server其本身是一个java工程,使用一般的编辑工具就可以编译完成,比较需要注意的点如下

a,数据库

如图所示,可以自己在本地搭建一套,也可以这里写公司的测试平台地址,自己建立一个新的数据库即可,代码运行过程中会运行剩下的部分

上方是启动的端口号,启动后可以在这里启动服务,这里不在赘述

2,agent

agent与server相比启动算是有一些复杂,git地址:https://github.com/opendx/agent

a,报错如下:

java: 无法访问org.eclipse.jface.text.BadLocationException
错误的类文件: /Users/admin/.m2/repository/org/eclipse/platform/org.eclipse.text/3.12.0/org.eclipse.text-3.12.0.jar!/org/eclipse/jface/text/BadLocationException.class
类文件具有错误的版本 55.0, 应为 52.0
请删除该文件或确保该文件位于正确的类路径子目录中。

这个问题如下图所示修改

需要注意的是,上述修改是在损害原有功能的基础上完成的,这块是test的运行代码部分

本身在平台搭建后,除了反显手机屏幕和元素定位等功能外,还可以利用平台的socker链接操纵手机,这里会自动生成一套testng代码并执行,上述方式可能会有问题,如果有问题的话建议换一种方式(笔者也是在碰壁后才意识到的)

去qq下载3个包老老实实安装吧,不要改了

b,这里也要依据server来配置agent的相关参数,使得agent可以正常调用到server

c,调试

一定要记得,是在cd进入agent所在目录后,在进行java -jar agent.jar的命令,因为agent本身有些参数是与相对路径有关系的,所以需要如此

在上一个章节,本地配置了环境变量,使得adb命令可以顺利执行,在连接手机可以adb devices检测到手机设备并启动了agent后,应该可以顺利注册手机

关于启动agent的命令,需要注意这几个问题,添加以下几个参数

--ip=xxxx:此参数,如果不声明,则默认为127.0.0.1,如果是本地调试,是没有问题的,如果前端与agent在不同机器上,则需要特殊声明,使得agent传递的参数为本身的ip,在后续联调的过程中才不会出现问题

--server=http://192.168.1.2:8887:此参数,是指向server的地址和端口,如果没有声明,也默认是127.0.0.1:8887,一般的如果server与agent不启动在同一台机器上,也可以不声明

--android=true,是否启用android功能,默认false,如果不声明,则无法实时扫描安卓机器的接入,如果设备管理平台上需要连接安卓手机,建议开启

--ios=true,同上

最终的命令:java -jar target/agent-0.1.0.jar --ip=192.168.1.8 --server=http://192.168.1.2:8887 --android=true --ios=true

3,front

前端代码也是正常的vue代码,需要cnpm install后执行即可运行,这里直接展示效果

运行成功后可以正常展示如上图所示即可,此时系统中登录用户名密码一般是admin/admin,一般的只有一个账户

4,整体联调

对于系统来说,如果agent,server和前端都是本地,则不需要进行较大调整

但是一般的,都需要进行调整

agent要求一定能直接连接手机,由于连接ios手机的要求,尽量是mac笔记本,也可以windows笔记本,要求是本地

server是可以部署在linux机器上的,也可以考虑理解代码后,融入其他的后端代码中,提供服务即可

front是较为复杂的前端,其中本身框架是vue,可以考虑融入其他框架中也可以考虑直接启动服务,可以部署在linux机器上

上图所示,是front代码的配置部分,需要通过这段代码来配置服务端server的地址

上上图所示页面则是前端的效果,其中下图所示代码

这部分代码是真实的手机远程操控的websocket连接,与agent服务的ip和端口一定要一致,这里的ip和端口都是参数化的,都是从agent获取到的,如果agent启动的时候有设置,则会取到设置的值,如果没有则会取到127.0.0.1,这也是agent要设置ip的原因

本系统是agent注册手机-server反显手机-front展示,并通过页面js通过底层websocket连接,展示和操作手机屏幕的过程,具体搭建后的效果可以在后文中进行讲解

远程设备管理opendx平台搭建-server,agent以及front实际搭建的更多相关文章

  1. 远程设备管理opendx平台搭建-appium和adb的安装

    多年不见了,说起来也有3年了我又开始写博客了,这几年我还是没啥长进,还是干测试,但是测试行业的话,我已经成了一个测开了,也在搭建自己的测试网站 本系列文章讲述的是一个系列的第一部分,最终可以搭建一整套 ...

  2. swoole学习(二)----搭建server和client

    1.搭建server 1.1搭建server.php 1.搭建websocket服务器,首先建立 server.php 文件, <?php $server = new swoole_websoc ...

  3. zabbix server+agent+proxy搭建性能监控平台

    这是新找到了配置文件配置方法但未尝试 每个模块工作职责: Zabbix Server:负责接收agent发送的报告信息的核心组件,所有配置,统计数据及操作数据均由其组织进行: Database Sto ...

  4. 搭建ELK日志分析平台(上)—— ELK介绍及搭建 Elasticsearch 分布式集群

    笔记内容:搭建ELK日志分析平台(上)-- ELK介绍及搭建 Elasticsearch 分布式集群笔记日期:2018-03-02 27.1 ELK介绍 27.2 ELK安装准备工作 27.3 安装e ...

  5. 服务器重启后SQL Server Agent由于"The EventLog service has not been started" 启动失败

    案例环境: 操作系统   : Microsoft Windows Server 2003 Standard Edtion SP2 数据库版本 : SQL Server 2005 Standard Ed ...

  6. Oracle 12c(12.1.0.5)OEM server agent 安装配置

    注意: 此文档为生产上操作文档,省略了IP,oracle用户server,agent 端至少需要sudo,ping,ssh,创建目录权限. 一.安装要求 1.1. 系统情况一览 IP 数据库 OEM ...

  7. Windows Server 2003/2008 单网卡搭建VPN

    Windows Server 2003/2008 单网卡搭建VPN 1.打开[控制面板] --> [管理工具] --> [路由和远程访问] 2.鼠标右击你要管理的电脑 在弹出式菜单中选中[ ...

  8. SQL Server下实现利用SQL Server Agent Job对索引重建实现Balance Load

    昨天工作中遇到这样一个场景,有个项目需要把某台服务器下所有的表和索引都启用数据压缩(data_compression=page),已经启用了的表和索引就不需要再压缩一次了.统计一下后发现要运行的REB ...

  9. 如何启动 SQL Server Agent(SQL Server 配置管理器)

    如何启动 SQL Server Agent(SQL Server 配置管理器) SQL Server 2008 R2 其他版本   4(共 6)对本文的评价是有帮助 - 评价此主题 可以从 SQL S ...

随机推荐

  1. win10系统git的安装与使用命令

    一.git简介 git是一个开源的分布式版本控制系统,可以高效的进行项目版本管理.分布式相比集中式最大的区别在于:分布式开发者可以提交到本地,每个开发者通过克隆在本地机器上拷贝一个完整的git仓库. ...

  2. 『Python』多进程

    Python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在Python中大部分情况需要使用多进程.Python提供了multiprocessin ...

  3. 『GoLang』控制结构

    条件语句 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行if后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码. if condition { // do so ...

  4. 案例分享 | dubbo 2.7.12 bug导致线上故障

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star.搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读. ...

  5. YbtOJ#943-平方约数【莫比乌斯反演,平衡规划】

    正题 题目链接:http://www.ybtoj.com.cn/contest/122/problem/3 题目大意 \(S(i)\)表示\(i\)的约数个数,\(Q\)次询问给出\(n,m\)求 \ ...

  6. 使用Jacoco统计服务端代码覆盖情况实践

    一.背景 随着需求的迭代,需求增加的同时,有可能会伴随着一些功能的下线.如果不对系统已经不用的代码进行梳理并删除不需要的代码,那么就会增加系统维护成本以及理解成本.但经历比较长的迭代以及系统交接,可能 ...

  7. Java实现四大基本排序算法和二分查找

    Java 基本排序算法 二分查找法 二分查找也称为折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜 ...

  8. 图数据库Neo4j的基本使用及与SpringBoot集成

    Neo4j 官网地址:https://neo4j.com/ 下载地址:https://neo4j.com/download-center/#community 官方入门文档:https://neo4j ...

  9. centos6.5 oracle 卸载

    1.使用SQL*PLUS停止数据库 [oracle@OracleTest oracle]$ sqlplus / as sysdba SQL> shutdown immediate; SQL> ...

  10. canvas 实现简单的画板功能 1.0

    canvas 实现自由画线,变换颜色.画笔大小,撤销上一步等简单功能 <!DOCTYPE html> <html lang="en"> <head&g ...