总结

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一文。读者可以在这里下载该例子的代码。

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

我们设计Case如下:

1,计算 2+1=3;

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

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

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

"Extract Attribute Value“提取规则

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

属性填充如下所示:

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

"Extract Text”提取规则

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

属性填充如下:

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

绑定提取的参数

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

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

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

添加循环

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

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

循环执行9次后的结果:

其他提取规则

"Selected Option"提取规则

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

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

"Extract Regular Expression"提取规则

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

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

总结

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

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

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

Visual Studio的Web Performance Test提取规则详解(2)的更多相关文章

  1. Visual Studio的Web Performance Test提取规则详解(3)

    总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance T ...

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

    总结 Visual Studio的Web Performance Test是基于HTTP协议层的,它不依赖于浏览器,通过直接接收,发送HTTP包来和Web服务器交互.Web Performance T ...

  3. 转:Visual Studio进行Web性能测试- Part I

    原文作者:Ambily.raj Visual Studio是可以用于性能测试的工具之一.Visual Studio Test版或Visual Studio 2010旗舰版为自动化测试提供了支持.本文介 ...

  4. Visual Studio进行Web性能测试- Part I

    Visual Studio进行Web性能测试- Part I 2012-08-29 08:01 by 知平软件, 5356 阅读, 9 评论, 收藏, 编辑 原文作者:Ambily.raj Visua ...

  5. Visual Studio 使用 Web Deploy 发布远程站点

    Ø  简介 本文介绍 Visual Studio 如何使用 Web Deploy发布远程站点,有时候我们开发完某个功能时,需要快速将更改发布至服务器.通常 Visual Studio 可以采用两种方式 ...

  6. Visual Studio进行Web性能测试- Part II

    Visual Studio进行Web性能测试- Part II 2012-08-31 14:34 by 知平软件, 7557 阅读, 5 评论, 收藏, 编辑 原文作者:Ambily.raj 对于一个 ...

  7. Visual Studio 2013 Web开发

    cnbeta新闻:微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Ser ...

  8. Visual Studio 2013 Web开发、新增功能:“Browser Link”

    微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Server 2013. ...

  9. Visual Studio 2013 Web开发、新增功能:“Browser Link”

    微软正式发布Visual Studio 2013 RTM版,微软还发布了Visual Studio 2013的最终版本..NET 4.5.1以及Team Foundation Server 2013. ...

随机推荐

  1. php实现单个用户禁止重复登录,防止同一用户同时登陆

    <?php session_start(); //ini_set('session.auto_start', 0); //关闭session自动启动 //ini_set('session.coo ...

  2. 3D Touch

    一.认识3D Touch   1.硬件和操作系统要求      iPhone 6s或者iPhone 6s Plus      操作系统要求 ios9+ 2.3D Touch的交互效果 QuickAct ...

  3. Golang之sdl2学习之路(零) -- 环境工具准备

    学习Golang有一段时间了,从毫无头绪到四处乱撞,再到如今静下心来安心学习sdl2也有小半年了. 今晚重构之前的学习代码,发现如果不写该文,可能会在以后回顾这段时间写的代码上花费时间,故以此文做一点 ...

  4. 复利计算器v1

    public class MainFrame extends JFrame { /** * 文本框 */ private TextField[] texts = new TextField[5]; / ...

  5. Eclemma各种安装方式以及安装失败解决

    在线安装方法一: 在eclipse的菜单栏点击 Help -> Install New Software -> add Name:eclemma (名称可以随便填) Location:ht ...

  6. jqxGrid 绑定格式化

    var cellsrenderer = function(row, columnfield, value, defaulthtml, columnproperties) { ) || (row == ...

  7. C++ Primer Pluse_7_课后题

    #include <iostream> using namespace std; double Sum2(double x, double y) { double sum = 0; if ...

  8. Requirejs之AMD规范

    一.什么是AMD规范 AMD是Asynchronous Module Definition-----异步模块定义 AMD规范定义了2个函数define()与require() 下面我们来看一下定义方法 ...

  9. 盒模型中--border

    三要素:宽border-width,形状border-style,颜色border-color <style> div{ width:300px; height:300px; backgr ...

  10. IIS6(Win2003) 使用.net 4.0 后,默认文档失效解决方案。

    IIS6(Win2003) 使用.net framework 4.0 后,默认文档失效解决方案. 用.net framework 4.0 开发的WEB项目,但放到iis6 中无法使用默认文档,状况如下 ...