java - 通过服务器自动化 Web 浏览器

标签 java web-services sockets ubuntu automation

我需要在以下场景中自动化网络浏览器:

我有一台服务器和许多客户端。现在,每当服务器向客户端发送命令时,客户端计算机都应该打开 Web 浏览器,浏览服务器提供的特定站点,加载该站点后,它应该向服务器发送加载该网站所需的确切时间。 任何工具或语言都可以。我的客户端电脑运行 Ubuntu 作为操作系统。

此外,对于服务器和客户端之间的通信,我正在考虑使用Java Sockets。只是想要有关它的信息。我走在正确的道路上吗?

基本上,我需要设备一个自动测试系统,在该系统中,只需从服务器发出一个命令,所有客户端就可以打开其网络浏览器并浏览要测试的特定网站。 安全威胁并不重要(到目前为止),因为我拥有这些测试机器的管理访问权限。

非常欢迎任何想法/建议。

最佳答案

这个程序有两个部分,第一部分是通过服务器连接一些客户端软件来启动该过程,第二部分是编写一个可以自动化 Web 浏览器的客户端。

即使你问了关于java的问题,我也会给出一个c++解决方案(任何解决方案都比一个多月没有解决方案后没有答案要好)

客户: 编写一个使用 QWebView 的 Qt 应用程序类本质上可以控制 C++ 应用程序中的浏览器。这非常简单,Qt 文档在这方面有很大帮助。

让此应用程序连接到 Tcp 服务器应用程序(可以用 c++、java 甚至 python 中的任何语言编写)。客户端和服务器之间的此 tcp 连接将仅用于“通知”客户端开始加载特定页面。这可能是监视一个文本配置文件,该文件说明哪些客户端将加载哪个 URL(等等...)。该服务器还应该有某种方式来“发出信号”,以开始向客户端发送各自的启动信号(我个人会通过标准输入执行此操作)。

网络内容服务器: 就我个人而言,我会在这部分使用 django 服务器。这将允许您使用 python 向其他 Tcp 服务器发出启动信号(我有一个 view ,当在浏览器中启动时会发送“启动信号”)。使用此方法的好处在于,您可以有另一个 View 来接受来自每个客户端的 POST。每个 POST 都可以包含哪个客户端发送的、加载的 url 以及花费的时间。

每个客户端都能够跟踪页面加载所需的时间。这可以通过在 loadStarted() 时启动计时器来完成。执行 load(QUrl) 后会发出信号方法并在 loadFinished(bool) 时停止计时器由QWebView发出的信号。然后可以将此信息 POST 回 django 服务器(通过其模型定义可以轻松地将信息保存到数据库)。

关于java - 通过服务器自动化 Web 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10055710/

相关文章:

java - 通过打印所有可能的方式递归硬币找零

java - 使用 java API 从案例生成器解决方案调用规则

web-services - 如何使用 YQL 获取股票期权链?

java.lang.ClassNotFoundException : io. quarkus.runtime.Quarkus

android - Android上的UDP客户端

objective-c - NSOutputStream 多次写入

java - SMO,WEKA 中的顺序最小优化

java - java.lang.Thread.State : WAITING (parking) 90%线程解析

java - 单个套接字上的多个对象流

sorting - 奇偶排序不兼容