转:WebTest的常见问题与解决
WebTest的常见问题与解决
录制好一个WebTest,加上各种规则,编辑后运行并不会像我们想象的那么顺利成功,往往会碰到很多问题,运行不成功的情况比较多,这样我们就遇到了如何解决这些问题的情形。
1、使用 Web Test Viewer 验证 Web 测试
•下表列出验证 Web 测试时需要查看的项,以及有关每种问题类型的附加信息。
2、常见的 Web 测试问题
WebTest的弱点
简单的记录和回放不适用某些网站
不能记录Javascrīpt请求(Ajax、图片等)
不能记录胖客户端的Web应用请求
不能测试客户端代码
导航测试
导航直观、清晰
整体结构、页面结构
图形测试
图片、动画、颜色、边框、字体、背景、按钮
风格、大小、用途
表格测试
表格风格、布局、一致性
常见问题
1、Web 服务器在执行过程和记录过程中的不同响应
Request failed: $HIDDEN1.__VIEWSTATE not found in test context.
当 Web 测试尝试在它无法定位的 Web 测试上下文中使用隐藏字段,并从它接收的前一响应页进行提取操作时,会发生该错误。
当一个 Web 应用程序创建一个唯一的用户名时。在不添加数据绑定或随机值的情况下运行这种 Web 测试,可能导致 Web 应用程序在该测试尝试创建重复的用户名时显示错误。
解决:数据绑定
使用 Javascrīpt 重定向(设置 window.location)的 Web 应用程序可能在执行中和记录中进行不同的响应,因为Web 测试引擎不运行脚本代码。
解决:插入该脚本重定向到的 URL,并从执行重定向的页将所需的提取规则移到新请求
Ø重定向到错误页
当出现服务器错误时,Web应用程序可能重定向到错误页,但并不返回一个HTTP 400或500级别响应代码。
错误原因:Web应用程序自身有问题,或者Web测试发出的请求有问题。
上图两次请求登陆页面
提取规则的事件序列如下所示:
•Web测试引擎开始执行Request1。
•Request1发送到目标服务器。
•从目标服务器接收一个响应。
•针对Request1的提取规则在响应页上运行。
•提取规则在Web测试上下文中放置一个项。
•Web测试引擎开始执行Request2。
•查询字符串参数、窗体参数和Request2上其他任何上下文绑定的值从Web测试上下文替换。
•Request2发送到目标服务器。
Ø自动隐藏字段跟踪
Ø修复__EVENTTARGET以及其他由Javascrīpt修改的隐藏窗体字段
3、辅助工具Fiddler
由于某些请求(例如,AJAX 请求和一些弹出窗口)不可能由 Web Test Recorder 进行记录 ,Eric Lawrence 编写了一个称为 Fiddler 的 工具。
Fiddler 用作代理服务器,可以截获所有 HTTP 通信量(仍不具有 SSL 支持,不过从2.0版本开始支持了),使用 Fiddler 可以更正一个无法用标准 Web Test Recorder 进行记录的 Web 测试。
http://www.fiddlertool.com
http://www.fiddler2.com 2.0版本开始支持SSL
Fiddler使用说明
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/dnwebgen/IE_IntroFiddler.asp?frame=true
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/dnwebgen/IE_Fiddler2.asp?frame=true
从 Fiddler 保存 Web 测试
当 Web Test Recorder 丢失一些 AJAX、ActiveX 或弹出窗口请求时,一个选项用于使用 Fiddler 记录整个测试。Fiddler 可以将一系列捕获的请求保存为可以添加到 Visual Studio 2005 测试项目的 .webtest 文件。
当无法使用 Web 测试记录器记录大量请求时,该选项最为适用。该选项的主要限制是,Fiddler 创建的 Web 测试不使用自动隐藏字段跟踪(例如,针对 __VIEWSTATE),而且不筛选诸如图像、CSS 和 Javascrīpt 的依赖请求。
缺点:录制所有的信息,没有清晰的结构
将保存的WebTest文件加入到测试项目中,可以发现结构没有使用记录器录制的清晰
最后可以考虑使用录制的WebTest和使用Fidder录制后手动添加请求相结合的方式来完善WebTest
从 Fiddler 手动添加请求
对于丢失请求的另一个选项是:使用 Fiddler 确定需要将哪些请求手动添加到 Web 测试。当 Web Test Recorder 丢失少量请求时,该方法最适用,因为您仍然可以受益于诸如自动隐藏字段跟踪和依赖请求筛选这样的功能。
在本例中,最好同时使用 Fiddler 和 Web 测试记录器记录 Web 测试。这使您能够比较这两个记录来发现丢失的请求。如果明显丢失了一个请求(例如,如果您知道发生了一个 AJAX 请求),则在记录过程中插入一个注释也是很有帮助的。该注释作为手动创建请求的占位符。
注意:需要将任何所需的提取规则、用于参数值的上下文绑定以及 ThinkTime 添加到手动创建的请求。
4、使用编码的WebTest
可以通过生成编码的WebTest来编程调试解决问题,关于编码的WebTest在前面已经提到过,比如使用分支,循环等控制
转:WebTest的常见问题与解决的更多相关文章
- NHibernate常见问题及解决方法
NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...
- WebView加载本地html、js文件常见问题及解决办法
声明:基于android studio平台,php语言搭建服务器 目录: 一.JavaScript脚本语言没有反应 二.alert无法弹出 三.html页面之间不能跳转 四.屏幕缩放没有达到预期效果 ...
- WordPress源代码压缩优化及常见问题的解决
先来看看效果: 意思就是让你的源代码看起来都挤在一起,这样如果别人想看你的源代码的话就不容易看懂了,(当然如果别人实在想看的话也可以通过某些软件的整理代码的功能来实现,比如IDEA的Ctrl+alt+ ...
- FineUIMvc 常见问题及解决办法
Ø 简介 FineUIMvc 是基于 jQuery 的专业 ASP.NET MVC/Core 控件库,本文主要介绍 FineUIMvc 的常见问题及解决办法. 1. View 中无法调用 Htm ...
- rsync @ERROR: auth failed on module backup 解决思路及附录rsync常见问题及解决办法
昨晚小版本上线,使用rsync往服务器上传文件时,client报如下异常: @ERROR: auth failed on module backup rsync error: error starti ...
- fetch使用的常见问题及其解决办法
摘自: https://segmentfault.com/a/1190000008484070 fetch使用的常见问题及其解决办法 javascript wonyun 2月25日发布 | 0 收 ...
- C#用ado.net访问EXCEL的常见问题及解决方法
C#用ado.net访问EXCEL的常见问题及解决方法,除了像sql server,access常见的数据库,其实Excel文件也可以做为数据库访问. ado.net访问excel的实例: OleDb ...
- PHPmailer发送邮件时的常见问题及解决办法
来源:http://www.chinastor.com/a/jishu/mailserver/0G392262014.html 使用PHPmailer发送邮件时的常见问题总结: 一,没有定义发送邮箱$ ...
- 【小梅哥SOPC学习笔记】SOPC开发常见问题及解决办法集锦
SOPC开发常见问题及解决办法集锦 一.Symbol 'NULL' could not be resolved 近期在评估使用NIOS II处理器进行项目的开发,我使用的软件是Quartus II 1 ...
随机推荐
- 详细理解servlet实现的几种方式和生命周期
现在很多的开发都是用的框架,然后很多同学学习的时候又是直接接触的框架,对于底层的一些开发,完全没有任何的了解.虽然对于业务上面来说,没有什么问题.但是很多时候当你被面试问到,或者是想要了解框架底层原理 ...
- Github建站全攻略
本系列为原创,发表在我的github主页,详细介绍了如何在github上建立个人网站,还包括域名绑定.评论功能.站内搜索等辅助功能的介绍,欢迎交流. 一步步在GitHub上创建博客主页(6) 本篇 ...
- UI篇—UITableview
一.基本介绍 在众多移动应⽤用中,能看到各式各样的表格数据 . 在iOS中,要实现表格数据展示,最常用的做法就是使用UITableView,UITableView继承自UIScrollView,因此支 ...
- centos6.5中gitlab的搭建
使用gitlab官网给的源码进行安装,步骤如下: Install a GitLab CE Omnibus package on CentOS 6 (and RedHat/Oracle/Scientif ...
- EF中用Newtonsoft.Json引发的循环引用问题
描述: 1.双向关系表a->b b->aList 2.在查询a引用b以后 3.用Newtonsoft.Json 去tojsonstring 4.一个只有6条数据的json串 出现了一屏幕字 ...
- C陷阱与缺陷 第二章
有关运算符优先级 1. "<<" 和 "+" data8 = data4H << 4 +data4L; 这里本意是让高四位的数据,左 ...
- QML之使用Loader加载QML组件
呵呵,今晚是边看<裸婚时代>边敲代码,那电影看得...!钱真他妈不是个东西. 盼望Meego火起来. QML的Loader元素经常备用来动态加载QML组件.可以使用source属性或者so ...
- laravel使用多个数据库连接
1.配置.env文件 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=database_name DB_USERNAME= ...
- 笨方法学python--打印
1 print 语句 尾端的逗号 end1 = "C" end2 = "h" end3 = "e" end4 = "e" ...
- iOS9以后 GDataXMLNode修改方式
iOS9以后GDataXMLNode修改方式