我需要创建一个自动化流程(最好使用Java):
这基本上是为了收集一些统计数据进行分析。每次用户跟踪链接时,都会为该特定用户生成一堆数据并保存在数据库中。我需要做的是,使用大约10个假用户,每5-15分钟ping一次页面。
你能谈谈简单的做法吗?必须有一个替代无尽的login-refresh-logout手动过程...
答案 0 :(得分:5)
尝试Selenium。
答案 1 :(得分:1)
如果需要,请使用HtmlUnit
基于java的网络互动/抓取。
例如:这里有一些简单的代码,显示了一堆输出以及访问已加载页面的所有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());
}
NB:您可以在任何Page对象上使用page.refresh()。
答案 2 :(得分:1)
这不是Java,而是Javascript。你可以这样做:
window.location = "<url>"
document.getElementById("username").value = "<email>";
document.getElementById("password").value = "<password>";
document.getElementById("login_box_button").click();
...
等
使用这种结构,您可以轻松覆盖1-3。抛出一些用于页面刷新的循环,你就完成了。
答案 3 :(得分:0)
您可以使用Jakarta JMeter