用Selenium 测试 Ajax 项目
粗看 Selenium
在典型的在线商店中,需要用户输入或选择众多步骤后才可以完成整个购物流程。作为web应用的开发者,你如何保证你程序的质量和正确性呢?如果能有办法测试你功能的正确性,那问题就迎刃而解了,但如何做到呢?
Selenium 是一个由ThoughtWorks做的专门为web应用所做的非常有效的功能测试工具。Selenium 的 tests 直接在浏览器里跑,就像用户真的在操作一样。Selenium 可运行 Windows, Linux, 和 Macintosh 的各种浏览器, 如 Internet Explorer, Mozilla 和 Firefox。
看看Selenium 的 online demo 。点击右上角的"All"按钮来启动运行test cases, 如无意其外,你将看到所有都是绿行。注意action的绿色是会比assertions浅的,这是因为他们测试的所有东西都只是verify或 assert 命令。如果有一个assertion 失败了,则那行命令会变为红色,并且Selenium 会停止运行。如果verify 命令失败了,那行命令也会变为红色,但是不会让测试停下来。
在 Selenium 中的Test suites 和 cases 实际上是由 HTML 写成的, 它们只是很简单的 HTMLs。 test suite 中没行都只是关联了一个test case, 例如:
test-case实际上是由 "Selenese" 写成的 HTML 文档,里面包有一个table,3个列,所有的命令最多只有两个参数,所以足够位置摆放。一个典型的test case像这样:
当你开始运行测试 (例如 按 "All"按钮), Selenium 的 TestRunner 会自动解释 HTML 格式的 test-case, 并运行你的web应用,并在页面下方的框架中显示运行的情形。 Selenium 允许你通过在浏览器里模拟用户的行为来进行测试。这当然不代表它可以代替unit-testing,只是我们通常会用它来进行web应用的功能测试。它也 可以被加入持续继承测试(continuous-integration)中,作为常规的自动回归测试(regression testing)。如果想更深入了解Selenium, 请参看在线文档 "Selenium: Usage".
开始测试 Ajax 在你的web应用功能是用JavaScript实现时,Selenium 就显得极为有用了。 Ajax, 是Asynchronous JavaScript and XML 的简称,是web应用中的一种web 交互技术。它可以实现在页面不需要刷新的情况下,在后台与服务器交互少量数据,并即时改变页面内容。这意味着网页看起来更实时,更有动态和更实用。
Ajax 中指示正在"读取数据"的标签 刚才那句话是对Ajax的技术定义,对于我们大多数人来说,Ajax意味着页面向GMail 或 Flickr 那样。当你点一个连接时,它不会产生页面刷新,而是页面会和服
相关文档:
Dynatrace AJAX Edition是我认为最为强大的Web Performance Profile工具。废话不说了,直接上图介绍其主要功能。
先用IE访问你需要profile的网站,例如google,可以点击dynatrace工具栏来启动。这时候dynatrace就开始记录这个网站触发的一切事件。
我简单测试一下,点击google map,并且搜索shanghai,然后回去看看dyn ......
<mce:script type="text/javascript" language="javascript"><!--
function del(com_id,meet_id){
$.ajax({
url:'../company/meet.Ajax.php',
type:'POST',
data:{com_id:com_id,meet_id:meet_id},
dataType:"json",
timeout: 10 ......
AJAX控件2
17. MutuallyExclusiveCheckBox
【功能概述】
互斥复选框就像RadioButton一样,应用的场景是:“a number of choices are available but only one can be chosen”
【细节】
(1)Key属性用来分组就像RdiolistGroup一样
(2)argetControlID用来绑定已有的CheckBox
【代码示意】
<ajaxToolkit:M ......
upload.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP ''upload.jsp'' starting page</title>
&n ......
实现功能:单击按钮,将从数据库获取的数据返回给文本框1(刷新文本框1),而文本框2不刷新
页面1:test.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head ......