Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 桌面应用程序的基准测试_Java_Windows_User Interface_Benchmarking - Fatal编程技术网

Java 桌面应用程序的基准测试

Java 桌面应用程序的基准测试,java,windows,user-interface,benchmarking,Java,Windows,User Interface,Benchmarking,我希望在Windows平台上对用Java编写的客户机/服务器应用程序(GUI)进行基准测试。我这样做是为了确定当扩展到100个用户时,应用程序平台将在哪里崩溃。这不是我的应用程序,我没有源代码 我知道像selenium这样的软件包适用于web应用程序,但我还没有看到任何适用于桌面应用程序的软件包 有什么想法吗?您可以使用各种Java性能管理工具分析应用程序: 根据收集的数据类型,还可以为java进程本身启用各种命令行选项。例如,如果您对垃圾收集器的工作有兴趣,只需按以下方式运行java进程

我希望在Windows平台上对用Java编写的客户机/服务器应用程序(GUI)进行基准测试。我这样做是为了确定当扩展到100个用户时,应用程序平台将在哪里崩溃。这不是我的应用程序,我没有源代码

我知道像selenium这样的软件包适用于web应用程序,但我还没有看到任何适用于桌面应用程序的软件包


有什么想法吗?

您可以使用各种Java性能管理工具分析应用程序:

根据收集的数据类型,还可以为java进程本身启用各种命令行选项。例如,如果您对垃圾收集器的工作有兴趣,只需按以下方式运行java进程:

java -Xloggc:D:/log/myLogFile.log -XX:+PrintGCDetails myProg
然后用类似的方法打开文件


如果不了解您正在评测的应用程序的更多信息,就很难给出从何处开始的建议。在任何计算机上执行的任何应用程序,都需要考虑4个象限:CPU、内存、I/O、网络。有时,在一个象限中提高可伸缩性会暴露出另一个象限中的瓶颈。我通常从我的应用程序花费时间执行的前10个方法开始,询问我是否可以改进这些方法中的算法。

可能是目前市场上最好的Java分析器。它不是免费的,但是一个特殊的工具。

你的问题有点模棱两可。我想你是想说你有一个桌面应用程序,它有许多外部连接(“用户”)使用其他东西(网络浏览器?)

否则,你可能意味着你有一个桌面应用程序,你正在分发给许多用户,它连接到一个中央服务器——但你真正的意思是,你想测试服务器性能,所以我猜不是这样

无论如何,如果我的第一个猜测是正确的,这可能是一种困难的程序

当我不得不这样做时,我编写了一个程序来模拟客户端连接,并在不同的计算机上运行。如果您的数据相当简单,那么这可以起作用

如果我的猜测是正确的,我可能会给你提供更多的提示——如果你发布更多的信息

----------------------评论后编辑

我要做的是尝试产生一个可以发送的最小常量xml消息(就像您发布的消息),然后编写一个程序来打开套接字,发送xml并关闭它。您可能必须处理服务器响应

我以前做过这件事,写一个程序可能需要几天的时间——问题可能是模拟多台机器。我会先尝试从一台机器上打开多个连接,如果可以的话,你就可以走了

如果不是(有时每个“客户机”需要不同的IP地址),您可以使用Linux(在windows上很难做到这一点),设置为一个框具有不同的IP地址。我认为你甚至在你的程序中提供了IP地址,因为你正在打开端口,但这已经有几年了,所以这有点含糊不清

解决方案#2(精神上更容易,但手动操作更密集):

如果你有一群客户,你可以用一个叫做“自动热键”的有趣工具来驱动你的程序。这是一个黑客工具,但对于驱动GUI程序来说却很棒。您可以记录一个单独的AHK脚本,该脚本在服务器上循环并导致一些操作,将其复制到所有计算机上,然后在每台计算机上启动它

还有一系列非常昂贵的工具用于管理此类测试。您正进入一个我称之为专业QA人员通常会遇到的更具挑战性的领域


如果你能做到这一点,不管你如何解决它,把它写在你的简历上。

啊,这肯定很有帮助。我一直在寻找模拟负载的方法,但无论如何我都必须这样做才能收集应用程序遥测数据。谢谢其他人有什么建议吗?要模拟负载,可以使用Jakarta JMeter。很抱歉。这是我的回答。我有一个库存控制平台,商业软件。供应商可能没有花足够的时间对其系统进行负载测试。该应用程序位于Firebird数据库上,服务器是Java应用程序,通过XML套接字处理数据库中的事务,XML语法不知道其通过Base64i表示进行处理。客户端是与系统用户交互的GUI桌面应用程序。我确实想测试服务器性能,但现在我所知道的只是作为接口的客户端GUI。明白了,听起来不错。在昨晚的睡眠中,我完全忽略了这个软件作为一个XMLSDK,它可能没有完全模拟桌面客户端的所有功能,但至少它是一个我可以编写脚本的机制!这应该是可以做到的。谢谢感谢您提醒我使用提供的XML/SDK。我能够构建一个概念验证的测试框架,现在我正在开发一个易于使用的工具包!