Java 通过服务器自动化Web浏览器

Java 通过服务器自动化Web浏览器,java,web-services,sockets,ubuntu,automation,Java,Web Services,Sockets,Ubuntu,Automation,我需要在以下场景中自动化web浏览器: 我有一个服务器和许多客户端。现在,每当服务器向客户端发送命令时,客户端计算机应打开web浏览器,浏览服务器提供的特定站点,加载该站点后,应向服务器发送加载该站点所需的确切时间。 任何工具或语言都可以。我的客户端PC运行Ubuntu作为操作系统 另外,对于服务器和客户端之间的通信,我考虑使用Java套接字。只是想得到一个关于它的消息。我走对了吗 基本上,我需要安装一个自动测试系统,在这个系统中,服务器只需一个命令,所有客户端就可以打开他们的web浏览器,浏览

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

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

另外,对于服务器和客户端之间的通信,我考虑使用Java套接字。只是想得到一个关于它的消息。我走对了吗

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


任何想法/建议都是非常受欢迎的。

这个程序有两个部分,第一部分是让服务器连接一些客户端软件来启动这个过程,第二部分是编写一个客户端,它将自动化web浏览器

<> P>即使你问了关于java的问题,我也会给出C++解决方案(任何解决方案都比没有解决方案的一个月以上的答案要好)

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

此应用程序连接到TCP服务器应用程序(可以用C++语言、java语言、甚至Python语言编写)。客户端和此服务器之间的此tcp连接将仅用于向客户端发出“信号”以开始加载特定页面。这可能是监视一个文本配置文件,该文件说明哪些客户端将加载哪个URL(等等…)。该服务器还应该有某种方式来“发出信号”,开始向客户端发送它们各自的启动信号(我个人会通过stdin这样做)

Web内容服务器: 就我个人而言,这部分我会使用django服务器。这将允许您使用python向另一个Tcp服务器发送启动信号(我有一个
视图,当在浏览器中打开该视图时,将发送“启动信号”)。使用此方法的好处在于,您可以拥有另一个视图,该视图接受来自每个客户机的帖子。每个帖子可以有哪个客户端发送它,加载了什么url以及花了多长时间


每个客户端都能够跟踪页面加载所需的时间。这可以通过在执行该方法后,当信号发出时启动计时器,并在
QWebView
发出信号时停止计时器来实现。然后可以将这些信息发布回django服务器(使用其
模型
定义可以很容易地将信息保存到数据库中)。

这取决于目标客户机。在我的情况下,它将是一个测试中心,它将记录加载该网页所需的所有加载时间。没有这样的安全问题!那么你有“管理员权限”访问这些机器?我删除了一些噪音。请编辑评论中的信息,返回到答案中,使其更引人注目(希望您现在理解为什么它是相关信息)。使用此方法,您仍然可以测试“任何”网站。您不必在django服务器上托管原始web内容。实际上,如果您愿意,TCP服务器可以管理一切,但使用django服务器,您可以使用已经“自动化”的web浏览器保存、组织数据,然后非常轻松地分析和报告数据的结果。