【shell】linux设备 通过捕捉event实现简单UI自动化

【shell】linux设备 通过捕捉event实现简单UI自动化,第1张

    这边收到了很多ai硬件设备,需要做压力测试、稳定性测试。苦于非安卓系统,不能借助input tap等方式进行ui自动化,也没找到合适的工具。上网查了资料加上自己多次测试排了一些坑,基本可以通过捕捉event实现简单UI自动化。

    /dev/input目录下的事件都是在驱动中调用input_register_device(struct input_dev *dev)产生的。

每个event将上报指定的事件:

比如:

通常触摸屏事件就会上报坐标轴事件,电源键比如按下是 1,松开是 0。而与event对应的相关设备信息位于/proc/bus/input/devices。可以直接cat 查看devces信息。小米手机为例:

    首先要会捕捉触摸屏以及所需要控制的按键事件,安卓系统比较简单,用自带的getevent就可以了。这边用小米手机为例:

我这边使用的触摸屏事件,打印的event1信息,可以理解为event1上报触摸屏事件。同样,使用电源键、音量键、home键也会用不同的event信息打印:

这里对应event0、event3、event4

但是在绝大多数linux是没有的!!!(有时候BSP对带,which一下就知道了)

如果没有的话只能编译一个放进去,这里推荐evtest

编译方法:

注:arm设备需要使用特定的交叉编译工具,否则可能无法执行;

方法:evtest /dev/input/event

通过evtest.c可以查看设备事件消息,通过TouchScreen.c可以实现点触摸屏某个坐标

[参考文档]( https://download.csdn.net/download/asd2479745295/10712830 )

编译文件push到设备。./touch xxx yyy

这边在使用时懒得充值,没找到合适的免费资源,找到了另一种解决方法。

( https://www.jianshu.com/p/6b5a172e064a )

可以参考之前一篇模拟快速点击的方法;

捕捉:

使用dd指令

模拟:

1、反向使用

2、可以使用追加

此方法可以模拟点击、滑屏、快速点击,各种实体按键短按、长按、快速点击等。暂时没有找到触摸屏长按的方法,原因是 无法控制长按的时间(追加的速度过快),但是可以通过脚本循环实现。

一个简单的循环,测试可以实现长按,但是不好控制时间,有一个思路是获取获取linux系统时间,在循环体中,true修改成时间条件但是可能打断长按事件。

还有一种可行性高,就是单独做成一个脚本供调用,另一个主脚本控制时间,到时间后kill进程来控制。方法很多,因为工作中没有用到这一项就没测试了。

1、ubuntu下编译解决。

2、捕捉的evest为空

数据量太少,dd的版本较低。更新busybox或者dd版本

3、while((1))报错

设备没有bash,只有sh,修改为while((true))可以解释通过。

安装的桌面版本不同效果是不一样的。

一、Unity

Unity是Ubuntu自家的桌面环境方案,由Ubuntu打造并面向Ubuntu推出。目前还没有其它Linux发行版采用Unity作为桌面方案。

在Unity当中,我们可以感受到Ubuntu对于桌面环境视觉定位的理解,而且实际效果与传统Windows桌面没有太大区别。Unity最具特色的一项功能名为“scopes”,允许大家通过所谓“dash”搜索不同类型的网络与本地内容类型——当然也包括我们已经安装在系统当中的应用程序。它同时也是手机版Ubuntu系统的核心所在。Unity还拥有其它一些独特的设计,例如“HUD”就允许用户直接搜索某款程序中的菜单选项,并通过键盘直接加以启用。

二、GNOME 3

与其它各大主流高人气桌面Linux发行版一样,Ubuntu曾经一度使用过GNOME桌面方案的早期版本。不过自从GNOME 2逐步升级到GNOME 3乃至GNOME Shell桌面之后,Ubuntu决定自行探索发展道路。但GNOME并未因此放弃希望。GNOME Shell迎来了可观的提升,而且顺利打破了人们对于前代方案的成见。即使是那些更习惯于传统桌面环境的用户,也可以通过GNOME提供的经典模式找到熟悉的感觉。GNOME同时也利用扩展拥有了完整的可配置能力。

三、KDE Plasma 5

从传统角度讲,KDE与GNOME都属于Linux阵营中最具影响力的桌面环境选项。GNOME桌面阵营目前已经分裂成了GNOME、Unity、Cinnamon以及MATE,但KDE项目却仍然保持着旺盛的生命力。Plasma 5界面也拥有了前所未见的精致表现。

KDE在可配置性方面一直优于GNOME以及由GNOME衍生而成的各类Linux发行版。不过这到底是不是件好事,仍然取决于用户的实际情况。有些朋友热衷于探索繁多选项所带来的自由搭配空间,但也有些用户更倾向于使用GNOME那样的精简化方案。随着时间的推移,KDE已经在简化的道路上取得了相当可观的进展——现在很多高级选项都会被隐藏起来,用户可以直接享受其搭配合理的默认效果。

四、Cinnamon

Cinnamon原本专门面向面向Linux Mint所打造,但如今其已经在其它多种Linux发行版上找到了新的表演舞台,具体包括Ubuntu、Fedora以及Debian等等。

采用Cinnamon桌面方案的Linux Mint

最初作为GNOME 3 fork之一的Cinnamon采用现代代码编写而成,但同时又通过重新调整为用户提供一套更为传统的桌面界面。就在GNOME舍弃了任务栏以及开始菜单类界面来显示已安装应用程序的同时,Cinnamon则选择围绕这些更为传统的特性构建起自己的桌面环境。另外,相较于努力裁撤功能与选项以简化桌面效果的GNOME以及强调智能手机平台的Unity,Cinnamon始终在为桌面用户提供更多新增功能及改进。

五、MATE

MATE与Cinnamon是两种非常相似的桌面环境——事实上,Linux Mint同时支持Cinnamon或者MATE桌面环境。尽管Cinnamon采用了GNOME 3中的一部分代码并将其fork成一套更为传统的桌面,MATE却做得更为彻底——采用更加陈旧的GNOME 2桌面代码,并在现代Linux发行版当中对其进行更新。除了Mint之外,MATE也适用于诸如Fedora、Ubuntu以及Debian等其它Linux发行版。

六、Lxde

采用Lxde桌面的Lubuntu系统

Lxde目前已经成为轻量级兼用户友好桌面环境领域的王者。如果大家手头有一台古董级计算机,但又希望让它排上点用场,那么选择Lxde绝对没错。相较于现代Linux桌面环境,Lxde对于图形硬件、CPU时钟频率以及内存的要求都低得多。在这里我们虽然看不到令人眼花缭乱的图形特效,但却能够获得最为基本的轻量级桌面环境使用体验,并顺利启动并管理自己的应用程序。

七、Xfce

采用Xfce桌面的Xubuntu系统

Xfce目前的处境其实有点尴尬。从传统角度讲,它本来是仅次于GNOME与KDE的第三大人气选项。它在轻量化水平上稍优于KDE与GNOME。而在GNOME 3正式发布之后,Xfce已经成为最顶尖的“传统”Linux桌面环境。

那么你还觉得Linux的UI难看吗?

以上回答由东莞市万里行橡胶有限公司提供,望采纳。

java通过winrm4j远程连接win执行命令

在Linux /UNIX/WINDOWS系统中,一般通过远程连接的方式在远端执行脚本命令或者其他,是通过SSH或者Telnet。笔者之前写过几遍运用JAVA使用SSH或者TELNET连接 *** 作系统执行命令的博客。但这些协议之间存在的差别的。

在LINUX、UNIX系统中一般通过SSH协议来登录、执行命令;

而在Windows *** 作系统中,由于没有自带SSH协议,一般通过Telnet协议去登录、执行命令;但是Telnet服务默认是不开启的。所以在大规模环境中, *** 作比较麻烦。另外Telnet协议存在安全问题。

如果不需要执行命令,而是通过远程桌面的形式来 *** 作windows,可以使用RDP协议,java有一个开源的项目properJavaRDP,可以在web页面或者GUI形式提供实现方案。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/6065376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-13
下一篇 2023-03-13

发表评论

登录后才能评论

评论列表(0条)

保存