[翻译]什么是Web测试?
2007-10-25 17:06
316 查看
由于不是很多人使用Visual Studio Team System 的 Web 测试(代号为 Ocracoke)的第一个社区技术预览版本(CTP),我想我应该和大家来分享一些有关Web测试的基本知识。从根本上,Web测试只是一个模拟用户与Web应用程序交互的请求列表。某些Web测试可能会被设计成对一个Web应用程序通过运行负载和其他Web测试来验证这个Web应用程序的功能是否正常。
Web测试通常是由浏览器记录器记录一系列的请求来创建的。下面,您可以看到一个我录制的非常简单的Web测试:
这个Web测试是最基本的。我浏览ASP.NET 商务初学者工具包(又称 IBuySpy)并且向购物车中添加了一个商品。可以单独运行此 Web 测试,以确保没有任何请求导致在服务器错误或作为负载测试来查找任何性能问题中的一部分。如果此级别的测试足够了,你可以深入一步并添加一个验证规则来检验购物车中包含了我购买的商品。你还可以将ProductID参数绑定到数据库以便每个虚拟用户选择一个不同的商品。
Web测试像上面显示的那样能够处理大量的测试场景,但是有时候你需要更多的控制。编码的Web测试使您能够使用分支并循环构造,执行自定义数据绑定,以及更多内容。编码的Web 测试是用.NET 语言编写,您可以使用整个.NET 框架和任何其他代码。我将在今后的文章中深入介绍编码的Web测试,但这里使用C#代码来将上面显示的Web测试转化为编码的Web测试:
public override IEnumerator<WebTestRequest> GetRequests()
{
WebTestRequest request1 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/default.aspx");
request1.ThinkTime = 6;
yield return request1;
WebTestRequest request2 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/productslist.aspx");
request2.ThinkTime = 4;
request2.QueryStringParameters.Add("CategoryID", "15");
request2.QueryStringParameters.Add("selection", "1");
yield return request2;
WebTestRequest request3 = new WebTestRequest ("http://www.asp.net/CommerceStarterKit/productslist.aspx");
request3.ThinkTime = 2;
request3.QueryStringParameters.Add("CategoryID", "17");
request3.QueryStringParameters.Add("selection", "4");
yield return request3;
WebTestRequest request4 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/ProductDetails.aspx");
request4.ThinkTime = 9;
request4.QueryStringParameters.Add("productID", "378");
yield return request4;
WebTestRequest request5 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/AddToCart.aspx");
request5.ThinkTime = 10;
request5.QueryStringParameters.Add("ProductID", "378");
yield return request5;
}
正如您所见,对象模型紧密匹配屏幕快照中看到 Web 测试树视图。 这是因为非编码的Web 测试在内部使用完全相同的对象模型。
您有什么想法?任何关于Web测试,编码的Web测试或是Ocracoke总体上的问题或评论。
JoshCh发布于星期一,2004年8月23日上午9点29
原文地址: http://blogs.msdn.com/joshch/archive/2004/08/23/21...
Web测试通常是由浏览器记录器记录一系列的请求来创建的。下面,您可以看到一个我录制的非常简单的Web测试:
这个Web测试是最基本的。我浏览ASP.NET 商务初学者工具包(又称 IBuySpy)并且向购物车中添加了一个商品。可以单独运行此 Web 测试,以确保没有任何请求导致在服务器错误或作为负载测试来查找任何性能问题中的一部分。如果此级别的测试足够了,你可以深入一步并添加一个验证规则来检验购物车中包含了我购买的商品。你还可以将ProductID参数绑定到数据库以便每个虚拟用户选择一个不同的商品。
Web测试像上面显示的那样能够处理大量的测试场景,但是有时候你需要更多的控制。编码的Web测试使您能够使用分支并循环构造,执行自定义数据绑定,以及更多内容。编码的Web 测试是用.NET 语言编写,您可以使用整个.NET 框架和任何其他代码。我将在今后的文章中深入介绍编码的Web测试,但这里使用C#代码来将上面显示的Web测试转化为编码的Web测试:
public override IEnumerator<WebTestRequest> GetRequests()
{
WebTestRequest request1 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/default.aspx");
request1.ThinkTime = 6;
yield return request1;
WebTestRequest request2 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/productslist.aspx");
request2.ThinkTime = 4;
request2.QueryStringParameters.Add("CategoryID", "15");
request2.QueryStringParameters.Add("selection", "1");
yield return request2;
WebTestRequest request3 = new WebTestRequest ("http://www.asp.net/CommerceStarterKit/productslist.aspx");
request3.ThinkTime = 2;
request3.QueryStringParameters.Add("CategoryID", "17");
request3.QueryStringParameters.Add("selection", "4");
yield return request3;
WebTestRequest request4 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/ProductDetails.aspx");
request4.ThinkTime = 9;
request4.QueryStringParameters.Add("productID", "378");
yield return request4;
WebTestRequest request5 = new WebTestRequest("http://www.asp.net/CommerceStarterKit/AddToCart.aspx");
request5.ThinkTime = 10;
request5.QueryStringParameters.Add("ProductID", "378");
yield return request5;
}
正如您所见,对象模型紧密匹配屏幕快照中看到 Web 测试树视图。 这是因为非编码的Web 测试在内部使用完全相同的对象模型。
您有什么想法?任何关于Web测试,编码的Web测试或是Ocracoke总体上的问题或评论。
JoshCh发布于星期一,2004年8月23日上午9点29
原文地址: http://blogs.msdn.com/joshch/archive/2004/08/23/21...
相关文章推荐
- 【milonga】什么意思_英语milonga在线翻译_有道词典
- [翻译]What Does Unity do?——Unity可以做什么?
- 挂起的更改中的“解析”是什么意思?原来是微软错误的翻译
- 我接下来翻译什么技术文章会比较符合大家的胃口呢?
- Image Roi Proposal , Object Proposals( 翻译成什么好 )
- 什么是软件设计(翻译、转载自Jack W. Reeves的论文《What Is Software Design?》)
- 【原创翻译】COM入门简介 -- 什么是COM , 怎样使用它 (5)
- 【翻译】Ext JS 6有什么新东西?
- 开发者想要什么---算是我的翻译作品的处女作吧,呵呵,致力于英语学习..
- [翻译]大牛告诉你一天时间能学些什么
- 翻译-DevOps究竟是什么?
- (N1744)Big Integer Library Proposal for C++0x 粗略翻译稿 双语对照(有什么不妥,请参看原文)
- 并行进程、连续进程、缓冲进程有什么区别和联系??(课本翻译不是很准确。)
- on call是什么意思_on call的翻译_音标_读音_用法_例句 - 必应 Bing 词典
- At KFC, we do chicken right!翻译过来是什么?
- Blender文档翻译-什么是Ghash?
- 究竟什么是CLR(翻译自维基百科)
- FAQ - 什么是软件工厂?(翻译)
- 什么是SaaS(翻译自维基百科)
- 【翻译自mos文章】什么是Oracle Clusterware 和RAC中的脑裂