代码改变世界

Visual Studio的Web Performance Test提取规则详解(2)

2012-09-21 10:04  知平软件  阅读(1803)  评论(0编辑  收藏  举报

总结

Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互。Web Performance Test发送和接收的一系列请求和响应之间存在相关性,例如,用户登录后,SID被传递给客户端,下一次请求时,需要把SID发送到服务器。因此,Web Perfomance Test 定义了多种提取规则,帮助从服务器响应中提取信息,用于之后的请求。或者保存起来,作为测试结果的一部分。

 

Web Performance Test提供多种提取规则,以下表格来自MSDN

提取规则的类型 说明
Selected Option 提取列表或组合框中的选定文本。
Tag Inner Text 从指定的 HTML 标记中提取内部文本。
Extract Attribute Value 从指定的 HTML 标记中提取特性的值。 有关以下内容的更多信息使用提取特性值规则的更多信息,请参见演练:向 Web 性能测试添加验证规则和提取规则。
Extract Form Field 提取响应中指定窗体字段的值。
Extract HTTP Header 提取 HTTP 标头的值。
Extract Regular Expression 从与正则表达式相匹配的响应中提取文本。
Extract Text 从响应中提取文本。
Extract Hidden Fields 从响应中提取所有的隐藏字段。

 

上文中,我们讲解了“Extract Hidden Fields”规则。本文将继续讲解其他提取规则。

 

例子

本文我们以一个Asp.net的例子讲解其他规则,该例子参考了Advanced capability in Web Performance Test of VS2010一文。读者可以在这里下载该例子的代码。

image

 

这是一个简单的计算器程序,提供4则运算。

 

我们设计Case如下:

1,计算 2+1=3;

2,循环计算,3+2=5,5+3=8,8+5=13 …

 

首先,我们进行录制,录制完成后,我们可以看到提交的表单包含参数如下:

image

 

根据我们设计的Case,除了2+1外,后面的计算我们需要提取Num1TextBox中的值填充在Num2TextBox中,把结果中的值提取出来填充在Num1TextBox中,再提交表单。

 

"Extract Attribute Value“提取规则

我们通过"Extract Attribute Value”规则从web响应中抽取Num1TextBox提取值:

image

 

属性填充如下所示:

image

其中,Tag Name决定要提取的控件类型,Attribute Name决定要提取哪个属性的值,Match Attribute NameMatch Attribute Value用控件的某个属性的值进行匹配。

 

"Extract Text”提取规则

我们通过"Extract Text”规则从web响应中抽取ResultLabel的值:

image

 

属性填充如下:

image

规则将提取Starts WithEnds With之间的文本。

 

绑定提取的参数

现在,我们已经为第一次提交的表单(也就是2+1=3)的响应添加了2条提取规则:

image

 

接下来,我们需要把规则提取的参数绑定到下一次表单的post参数中:

image

这时,执行case,就可以得到3+2=5。

 

添加循环

为了达到循环计算的效果,如计算3+2=5,5+3=8,8+5=13,13+8=21 ….需要添加一个循环:

image

 

为了对循环中的每次提交后的响应都进行提取,我们需要把之前添加的两个规则拷贝到循环内的URL中,如上图所示。

 

循环执行9次后的结果:

image

 

其他提取规则

"Selected Option"提取规则

在上面的例子中,如果我们希望在循环内,计算符号不使用硬编码的“+”号,而是使用上次请求选中的符号,需要使用"Selected Option"提取规则,该规则将提取select控件当前选中的值,属性配置如下:

image

 

其中,"Select Tag Name”是select控件的ID或Name。

 

"Extract Regular Expression"提取规则

上文中提取Result参数,如果我们使用正则表达式规则抽取会怎么样呢? 如:

image

我们发现,抽取的Result值将会是"等于5。",而不是"5",并不适用上面的例子。

 

总结

目前为止,我们讲解了5种取规则,剩下的几种就不再一一介绍。下一讲,我们将介绍如何使用自定义规则。

 

本文由知平软件刘斌华原创,转载请注明出处。

知平软件致力于移动平台自动化测试技术的研究,我们希望通过向社区贡献知识和开源项目,来促进行业和自身的发展。