自动化网页测试

时间:2012-11-04 22:27:09

标签: php javascript

我想在我的网页上自动化一些测试,主要用无效数据填写表单,看看会发生什么。可以使用Javascript吗?如果没有,用PHP可以吗?该脚本应该处理会话和cookie。

Here是一个非常简单的例子,有3页。在第一个中,您应输入“x”并单击“提交”,在第二个中您应输入“3”并单击“提交”。如果成功,最后一页应该显示“你得到了它!”。可以自动化,以便我加载脚本并立即看到“你得到它”吗? 请注意:为简单起见,这里没有cookies \ sessions,但我想要一个能够支持这些内容的答案。

  • 我尝试使用包含上述网站的iframe制作另一个页面。但无法访问iframe
  • 中的元素
  • 我尝试使用发送请求的cURL制作PHP脚本,但我无法转发Cookie。
  • 我已对this answer发表评论但未收到回复。

为方便起见,这里是代码:(你真的不需要它,但以防万一..)
的index.html

<!DOCTYPE html>
<html>
First page: please enter x
<form method="post" action="next.php">
<input type="text" id="id" name="id" />
<input type="submit" />
</form>
<html>

next.php

<?php
if(isset($_POST) && isset($_POST['id']) && $_POST['id']!='x'){
    echo '<script>window.location = "http://www.cs.bgu.ac.il/~kahilm/myNavigator/";</script>';
}
?>
<!DOCTYPE html>
<html>
Second page: please enter 3
<form method="POST" action="last.php">
<input type="text" name="code" />
<input type="submit" />
</form>
</html>

last.php

<?php
if(isset($_POST) && isset($_POST['code']) && $_POST['code']=='3'){
    echo 'you got it!';
}else{
    echo 'you sent something, please make it a "3"... :)';
}
?>

3 个答案:

答案 0 :(得分:6)

考虑Selenium浏览器自动化框架 - 它允许您浏览页面,验证条件,填写表单。非常稳定,非常成熟。

http://seleniumhq.org/

答案 1 :(得分:2)

您应该以编程方式控制浏览器以执行此类测试。 Selenium是一个流行的选项,并且在文档中提到了PHP绑定(尽管我通常使用Perl或Python)。

答案 2 :(得分:1)

基于PHP的解决方案:不会从前端测试,只测试服务器后端,因此不会模拟实际输入。

JS:不会跨页面持续存在。

因此,您要么是在寻找浏览器扩展程序,要么是完全独立于浏览器的独立实用程序。

您可以尝试:

  1. Sikuli 但它是通用的,不是针对网页,而是针对一般的GUI。
  2. WatiN or Selenium