gpt4 book ai didi

grails - 如何在不使用 UI 的情况下自动执行 Java 应用程序测试?

转载 作者:行者123 更新时间:2023-11-28 20:43:51 26 4
gpt4 key购买 nike

我可以访问代码库(从 SVN check out 到我的本地机器)。它是使用 Java 和 Groovy 使用 Grails 框架(MVC 架构)编写的。我是一名测试人员,作为自动化测试的一部分,我想编写代码来调用 Controller ,作为返回,我可以通过查看响应或数据库中的条目来检查结果。我基本上想跳过 UI 部分。

我该如何开始?我可能无法在开发项目中编写我的代码(我想我是不允许的)。我需要为它创建一个单独的框架吗?或者我可以将所有 jar 文件包含在项目中并在其上编写代码吗?

这个post中的答案实际上是我正在寻找的,但对于 Java 应用程序。有没有我可以使用的 API?

如果您需要更多信息,请告诉我。

最佳答案

如果应用不提供Json、XML或类似的API,你可以使用像HtmlUnit这样的测试库。在 jUnit 测试方法中。

来自 "Getting Started" 的示例部分:

@Test
public void homePage_Firefox() throws Exception {
final WebClient webClient = new WebClient(BrowserVersion.FIREFOX_17);
final HtmlPage page = webClient.getPage("http://htmlunit.sourceforge.net");
Assert.assertEquals("HtmlUnit - Welcome to HtmlUnit", page.getTitleText());

webClient.closeAllWindows();
}

请注意,HtmlUnit 试图像虚拟浏览器一样工作(100% 用 Ja​​va 编写),但它在执行 Javascript 方面有点受限,例如。

然后,使用另一个库,如 jsoupJericho HTML Parese检查代码并获取要在数据库中检查的值。

另一方面,如果应用程序确实提供了获取数据的方法,您可以使用Jersey Client API。发出 REST 请求并获取值。这很简单。看这个例子:

Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:9998").path("resource");

Form form = new Form();
form.param("x", "foo");
form.param("y", "bar");

MyJAXBBean bean =
target.request(MediaType.APPLICATION_JSON_TYPE)
.post(Entity.entity(form,MediaType.APPLICATION_FORM_URLENCODED_TYPE),
MyJAXBBean.class);

关于grails - 如何在不使用 UI 的情况下自动执行 Java 应用程序测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431086/

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