网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

基于 SSL 的 ASP.NET Web 应用程序测试自动化

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13

  如果你正在HTTP上使用安全套接字层(SSL)来加密用户数据,并且想通过编程来测试你的Web应用,你会发现此技术并非广为人知。在本月的栏目中,我将示范如何建立一个 SSL 测试服务器,然后编写测试自动化代码,并通过一个简单而又具有代表性的 Web 应用来验证。
  
  Microsoft .NET环境提供了强有力的测试工具来测试采用SSL安全机制的ASP.NET Web应用程序。为了说明它们的使用方法,我将建立一个SSL服务器,并通过一个短小精悍的程序来示范如何自动测试基于HTTPS的Web例子应用程序。虽然 在这方面已有个别技术非常经典并且有很好的文章介绍,但在与我的许多同事交流中,我发现对测试 SSL Web 应用的整体过程的把握相对来说并不是很到位。用两幅屏幕截图最能说明问题。Figure 1展示了一个简单但是很有代表性的ASP.NET的Web应用。
  
 

  
Figure 1 一个 ASP.NET Web 应用

  
  注意我使用的是 SSL 连接,因为我要在 Internet 上传送敏感的信用卡信息(注意是"https://"协议,并且在状态栏有一个小锁 图标)。
  
  现在,让我们想象一下用手工方式是如何测试这个应用程序的。我们必须在Web页上输入成百甚至上千的用户名,数量以及信用卡号码,检查每一个确认码,针对预期的结果检查每行代码以确定结果是否正确,然后将这些结果记录在一些表格中,比如 Excel 电子表格或者文本文件中。整个过程耗时、低效、繁琐并且容易出错。
  
  一个更好的方法是利用.NET框架的强大能力编写自动化测试例程,在程序中用 SSL 发送测试数据,然后针对预期的确认码来检查响应流,Figure 2 是一个控制台应用程序,它演示了上述的思路。
  
 

  
  正像你看到的,自动化测试案例的基本做法与 Figure 1 中所示的手动测试是一样的。用户名称是"Smith",物品数量是"3",信用卡号是"1234 5678 9012", 通过基于 SSL 的 HTTP 加密后被提交到Web应用,测试程序获取 HTTP 响应流,并搜索响应流中的“C3-57-ED-DA-8B”,这时,在该响应流中找到期望的确认码,所以测试 自动化程序记录下“PASS”结果。在本栏目后面的三个章节中,我将讲解产生如 Figure 2 所示输出的测试程序。演示如何建立一个接受 SSL 请求的测试服务器,并讨论如何扩展本文呈现的技术来满足你自己的需要。
  
  在我讲解如何编写测试自动化程序之前,让我们首先快速回顾一下本文的例子Web应用程序。正如你在 Figure 1 看到的一样,有三个 TextBox 控件,我使用 Visual Studio .NET 缺省的ID:TextBox1、TextBox2、TextBox3 来命名它们。它们分别对应着用户名称、物品数量以及信用卡帐号。 Label5 控件 用于显示应用程序信息。当我编写测试自动化程序时,我必须要知道这些信息,此外还需要知道订单确认码的产生方式,以便我能确定我的测试案例期望的结果。以下是用于测试此Web应用程序的核心代码:
  
  if (TextBox3.Text.Length == 0)
  Label5.Text = "Please enter credit card number";
  else
  {
  byte input = Encoding.Unicode.GetBytes(TextBox3.Text);
  byte hashed;
  using(MD5 m = new MD5CryptoServiceProvider())
  {
  hashed = m.ComputeHash(input);
  }
  Label5.Text = "Thank you. Your confirmation code is " +
  BitConverter.ToString(hashed).Substring(0,14);
  }
  
  为了模拟确认码的生成,我只利用了用户输入的信用卡号,用它产生一个MD5散列,然后截取散列值最左边的14个字符。在实际的生产系统中,你可能会用更为复杂的方式来产生确认码。在这种情况下确定预期的结果可能会更具技巧性。不过有一点要特别注意,你不能通过调用被测试的程序来确定预期结果,因为这将破坏测试的有效性,因为你本来就是要检查

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号