我需要创建一个自动化流程(最好使用 Java),它将:
- 打开具有特定 URL 的浏览器。
- 使用指定的用户名和密码登录。
- 按照页面上的链接之一。
- 刷新浏览器。
- 登出。
这基本上是为了收集一些统计数据进行分析。每次用户点击链接时,都会为该特定用户生成一堆数据并保存在数据库中。我需要做的是,使用大约 10 个假用户,每 5-15 分钟 ping 一次页面。
你能想出简单的方法吗?必须有一个替代无休止的登录 - 刷新 - 注销手动过程......
我需要创建一个自动化流程(最好使用 Java),它将:
这基本上是为了收集一些统计数据进行分析。每次用户点击链接时,都会为该特定用户生成一堆数据并保存在数据库中。我需要做的是,使用大约 10 个假用户,每 5-15 分钟 ping 一次页面。
你能想出简单的方法吗?必须有一个替代无休止的登录 - 刷新 - 注销手动过程......
尝试硒。
如果需要,请使用HtmlUnit
基于 Java 的 Web 交互/爬网。
例如:这里是一些显示一堆输出的简单代码和一个访问加载页面的所有 IMG 元素的示例。
public class HtmlUnitTest {
public static void main(String[] args) throws FailingHttpStatusCodeException, MalformedURLException, IOException {
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("http://www.google.com");
System.out.println(page.getTitleText());
for (HtmlElement node : page.getHtmlElementDescendants()) {
if (node.getTagName().toUpperCase().equals("IMG")) {
System.out.println("NAME: " + node.getTagName());
System.out.println("WIDTH:" + node.getAttribute("width"));
System.out.println("HEIGHT:" + node.getAttribute("height"));
System.out.println("TEXT: " + node.asText());
System.out.println("XMl: " + node.asXml());
}
}
}
}
示例 #2访问命名输入字段并输入数据/单击:
final HtmlPage page = webClient.getPage("http://www.google.com");
HtmlElement inputField = page.getElementByName("q");
inputField.type("Example input");
HtmlElement btnG = page.getElementByName("btnG");
Page secondPage = btnG.click();
if (secondPage instanceof HtmlPage) {
System.out.println(page.getTitleText());
System.out.println(((HtmlPage)secondPage).getTitleText());
}
注意:您可以在任何 Page 对象上使用 page.refresh() 。
它不是Java,而是Javascript。您可以执行以下操作:
window.location = "<url>"
document.getElementById("username").value = "<email>";
document.getElementById("password").value = "<password>";
document.getElementById("login_box_button").click();
...
ETC
使用这种结构,您可以轻松覆盖 1-3。为页面刷新添加一些 for 循环就完成了。
你可以使用Jakarta JMeter