技术开发 频道

用 Selenium 自动化验收测试

    登录用例 

    大多数人都知道登录页面是如何工作的 —— 输入用户名和密码,然后将数据提交到服务器。如果凭证有效,就可以成功登录,并看到受安全保护的资源。在示例应用程序中,这个测试用例包含以下用户操作和断言,必须将它转换成一个 Selenium 测试用例:

    1.单击登录链接。
    2.验证系统是否要求用户进行登录。
    3.输入用户名。
    4.输入密码。
    5.按下登录按钮。
    6.验证是否登录成功。
   
    图 2 展示了用于这些需求的 Selenium 测试用例。注意,我是在运行测试之后截取屏幕快照的。绿色箭头表示成功地通过验证的断言。

    图 2. 登录和查看股票测试用例
 

    查看股票测试用例

    查看股票页面显示一个公司列表。用于这个页面的测试用例非常简单,所以被包括在前一个测试用例的后面。该测试用例验证当前位置是否为 /main/list_stocks,以及页面是否包含文本 Click on a company name to view details。

    查看股票细节用例

    查看股票细节用例是在查看股票页面上触发的。用户在一个公司名称上单击鼠标时,就触发了到服务器的一个 Ajax 请求。服务器的响应包括该公司的详细信息,这些信息将插入到当前页面中,而不必重新装载完整的页面。用于这个用例的测试用例执行以下用户操作:

    1.单击公司名称 Acme Oil。
    2.验证页面上是否显示该公司的详细信息。
    3.单击公司名称 Acme Automotive。
    4.验证页面上是否显示该公司的详细信息。

    由于使用了 Ajax,请求是异步发生的。在一般的 Web 应用程序中,所有东西通常都是同步的,因此这一点提出了一种不同的挑战。可以像测试其他功能一样来测试 Ajax 功能。惟一的不同是,必须让 Selenium 暂停,等待 Ajax 命令完成。为此,可以使用 pause 命令来等待 Ajax 命令的完成。另外,Joseph Moore 在他最近的 blog 贴中提到,还可以使用 waitForValue 和 waitForCondition 命令代替 pause 命令(见 参考资料)。

    图 3 展示了被转换成 Selenium 用例的需求。
   
    图 3. 查看股票细节测试用例
 

    注意 pause 命令:必须使用这些命令,以便等待异步请求完成和更新页面内容。如果没有 500 毫秒的暂停,测试将失败(如 图 4 所示)。


    图 4. 失败的查看股票细节测试用例
 

    pause 命令还测试 Ajax 功能的非功能性需求。500 毫秒对于 pause 命令是一个很好的值,因为 Ajax 请求应该快速地执行和完成。可以试着去掉 pause 命令,看看结果如何。如果测试在您的机器上失败,那么试着将这个值增加到 1000 毫秒。

    退出用例

    退出用例很容易实现,简单来说只有以下两步:

    1.单击退出链接。
    2.验证是否成功退出。
 
    图 5 展示了最后这个测试用例。

    图 5. 退出用例
 

0
相关文章