gpt4 book ai didi

java - 在 Java 中自动化 UI 测试

转载 作者:行者123 更新时间:2023-12-04 05:00:15 26 4
gpt4 key购买 nike

我正在编写自动化来测试应用程序。大多数事情都已经完成了。现在我需要做一些 GUI 自动化。安装应用程序是其中的一部分,我需要编写 Java 代码来启动应用程序安装程序并选择正确的选项并安装应用程序。如果抛出任何应用程序弹出窗口,则捕获并响应这些弹出窗口。捕获 UI 中的任何错误或警告。这一切都需要用Java开发,我不允许使用任何现有的第三方工具。

只想知道做这件事的最佳方法是什么。
我在看 http://docs.oracle.com/javase/tutorial/uiswing/components/button.html#radiobutton ,有没有其他最好或简单的方法来实现这一点。任何关于此的想法或文章都会有所帮助。

最佳答案

即使它是用 Java 编写的,您也无法直接访问其他应用程序控件(如按钮、复选框、列表和其他 UI 元素),除非该应用程序提供一些选项来控制其 UI(我怀疑许多应用程序都提供这样的东西) )。

所以可能只有两种方式(我猜两者都同样糟糕):
1. 使用一些 3rd 方原生库与应用程序交互,但在这种情况下,取决于测试的应用程序,会有很多痛苦和问题。
2. 使用 Robot 并在该应用程序窗口上模拟按键和鼠标事件来执行某些操作(例如按下按钮、填充文本字段或滚动列表),但这将需要您也无法检索的组件的精确坐标,因此您可能只对这些坐标进行硬编码,并祈祷在测试运行时没有人移动/调整测试窗口的大小。

总结一下 - 使用 Java 编写 UI 测试应用程序并不是最好的选择。
实际上,我敢打赌在某些情况下使用其他语言编写它可能会很痛苦。

也许我大错特错,有人可以分享一种以更好的方式在 Java 中做这些事情的方法......

附言小机器人示例(填写抽象登录表单):

public static void main ( String[] args )
{
fillForm ();
}

private static void fillForm ()
{
try
{
Robot r = new Robot ();

// Set to true so we will wait for events to process
// Still we might need some delays to let application take the input in some cases
r.setAutoWaitForIdle ( true );

// Login
typeKey ( r, KeyEvent.VK_A );
typeKey ( r, KeyEvent.VK_D );
typeKey ( r, KeyEvent.VK_M );
typeKey ( r, KeyEvent.VK_I );
typeKey ( r, KeyEvent.VK_N );

// Tab to password field
typeKey ( r, KeyEvent.VK_TAB );

// Password
typeKey ( r, KeyEvent.VK_P );
typeKey ( r, KeyEvent.VK_A );
typeKey ( r, KeyEvent.VK_S );
typeKey ( r, KeyEvent.VK_S );

// Process form
typeKey ( r, KeyEvent.VK_ENTER );
}
catch ( AWTException e )
{
e.printStackTrace ();
}
}

private static void typeKey ( Robot r, int a )
{
r.keyPress ( a );
r.keyRelease ( a );
}

关于java - 在 Java 中自动化 UI 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16236745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com