忘记是谁跟我说的了,好像是说女孩子要淑女点,不要和人争论,要以德报怨。。。 只是,这社会资源贫乏,若不放弃淑女姿态,不和人争,又如何活下去? 只是,如果以德报怨,那么我该以何来报德呢? 无解~~

发布新日志

  • LR和QTP的区别(转载)

    2009-03-20 10:38:11

    LR(性能测试工具)和QTP(自动化测试工具)的区别:

    1、LR: 基于协议的性能测试;QTP: 基于UI对象的功能测试。
    2、LR录制原理:捕获数据包。录制的前提是能识别协议报文;QTP 录制原理:消息机制,截获消息。录制的前提是能识别控件。
    3、LR是性能测试工具,侧重的是压力,负载,容量,并发等的测试;QTP是功能测试工具,针对功能的测试。

    有一些人经常说QTP能做的LR也能做,比如web测试方面,LR也能进行回放,而LR能做的QTP却不能做,那为什么不直接用LR呢?

    答:录制的协议不同。QTP是功能测试的工具,这个功能测试是指的基于GUI的功能测试.QTP的录制和回放都是真实的去操作客户端程序的各种GUI控件,回放的时候会真实的启动客户端程序.
    而LR只是录制了客户端和服务器之间的通信数据,回放自然也是这些通信的数据,而且只有在录制的时候跟客户端程序有关系,回放的时候就跟客户端没有任何关系了,回放的时候不会启动客户端程序.

    比如,注册一个论坛,QTP在回放脚本的时候会输入你每个基本信息的动作,然后发送这个表单到服务器,而LR录制的是通信协议,就不会回放输入每个基本信息的动作了,而是直接把已经保存的表单信息直接打包发送到服务器。

    转自:http://www.threes.cn/blog/?p=60

    QTP目前最主要的应用是用于回归测试、版本验证测试阶段。

    它本身是针对系统界面上的元素进行识别、操作,达到测试系统功能的目的。因此,自动化测试启动的时机或者说QTP开始介入的时机就要受到系统开发进度的制约。

    只有当系统的界面元素不会频繁的变化、系统功能基本稳定,已经通过一至两轮的手工测试,确定系统不会存在重大缺陷时,才可以考虑自动化的实施。

  • 软件测试工具集锦

    2008-08-21 10:43:47

    Parasoft白盒测试工具集

    工具名 支持语言环境 简介
    Jtest Java 代码分析和动态类、组件测试
    Jcontract Java 实时性能监控以及分析优化
    C++ Test C,C++ 代码分析和动态测试
    CodeWizard C,C++ 代码静态分析
    Insure++ C,C++ 实时性能监控以及分析优化
    .test .Net 代码分析和动态测试

    Compuware白盒测试工具集

    工具名 支持语言环境 简介
    BoundsChecker C++,Delphi API和OLE错误检查、指针和泄露错误检查、内存错误检查
    TrueTime C++,Java,Visual Basic 代码运行效率检查、组件性能的分析
    FailSafe Visual Basic 自动错误处理和恢复系统
    Jcheck M$ Visual J++ 图形化的纯种和事件分析工具
    TrueCoverage C++,Java,Visual Basic 函数调用次数、所占比率统计以及稳定性跟踪
    SmartCheck Visual Basic 函数调用次数、所占比率统计以及稳定性跟踪
    CodeReview Visual Basic 自动源代码分析工具

    Xunit白盒测试工具集

    工具名 支持语言环境 官方站点
    Aunit Ada http://www.libre.act-europe.fr
    CppUnit C++ http://cppunit.sourceforge.net
    ComUnit VB,COM http://comunit.sourceforge.net
    Dunit Delphi http://dunit.sourceforge.net
    DotUnit .Net http://dotunit.sourceforge.net
    HttpUnit Web http://c2.com/cgi/wiki?HttpUnit
    HtmlUnit Web http://htmlunit.sourceforge.net
    Jtest Java http://www.junit.org
    JsUnit(Hieatt) Javascrīpt 1.4以上 http://www.jsunit.net
    PhpUnit Php http://phpunit.sourceforge.net
    PerlUnit Perl http://perlunit.sourceforge.net
    XmlUnit Xml http://xmlunit.sourceforge.net

    主流黑盒功能测试工具集

    工具名 公司名 官方站点
    WinRunner

    HP-Mercury

    http://www.mercuryinteractive.com
    Astra Quicktest HP-Mercury http://www.mercuryinteractive.com
    Robot IBM Rational http://www.rational.com
    QARun Compuware http://www.compuware.com
    SilkTest Segue http://www.segue.com
    e-Test Empirix http://www.empirix.com

    主流黑盒性能测试工具集

    工具名 公司名 官方站点
    WAS M$ http://www.micro$oft.com
    LoadRunner Mercury http://www.mercuryinteractive.com
    Astra Quicktest Mercury http://www.mercuryinteractive.com
    Qaload Compuware http://www.empirix.com
    TeamTest:SiteLoad IBM Rational http://www.rational.com
    Webload Radview http://www.radview.com
    Silkperformer Segue http://www.segue.com
    e-Load Empirix http://www.empirix.com
    OpenSTA OpenSTA http://www.opensta.com

    测试管理工具典型产品的比较

    工具名称 QC/TD  ClearQuest BMS Bugzilla
    流程定制 Y Y N Y
    查询功能定制 Y Y Y Y
    功能域定制 Y Y Y Y
    用户权限分级管理 Y Y Y Y
    Email通知 Y Y Y Y
    构架模式 B/S C/S,B/S B/S B/S
    报表定制功能 Y 强,集成Crystal Report 有标准报表和高级报表,定制功能不够 Y
    支持平台 Windows Windows, Unix Windows Linux, FreeBSD
    支持数据库 Oracle, M$ Access, SQL Server等 Oracle, M$ Access, SQL Server SQL Server等MSDE MySQL
    安装配置的复杂度 简单 有些复杂 容易 不复杂
    许可证费用 昂贵 昂贵 适中 免费
    售后服务 国内有多家代理公司提供相关服务 在国内有分公司提供技术支持 技术支持和服务体系完备 可自行修改源代码
    与其他工具集成 本身又是测试需求、测试案例管理工具, 与winRunner, LoadRunner集成,并且具有多种主流Case工具接口Add-In 与rational公司的其它产品无缝集成,特别与Clear Case配合以可实现UCM的配置管理体系 M$ VSS, Project 开源配置管理工具CVS
    公司背景 世界主流测试软件提供商 已被IBM合并,世界著名软件公司 微软与上海市政府新成立的软件企业  世界著名开源项目
  • FireFox—firebug—Yslow

    2008-07-23 09:35:42

    Performace——YSlow便开始分析此页的效率,并从13个最影响网页效率的方面给出评估:

     

    l         Make Fewer HTTP Requests 尽可能的减少HTTPRequest请求数

    1:用一个大图片代替多个小图片

    2:合并你的css文件

    3:合并你的javascrīpt文件

    l         Use a Content Delivery Network 使用CDN

    CDN是一个经策略性部署的整体系统,能够帮助用户解决分布式存储、负载均衡、网络请求的重定向和内容管理等问题。

    其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络边缘,使用户可以就近取得所需的内容,解决 Internet 网络拥塞状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均而产生的用户访问网站响应速度慢的根本原因。

    参见:http://www.chinacache.com/viewtechnique.asp?id=15

    l         Add an Expires Header 添加周期头

    l         Gzip Components 启用Gzip压缩

       Gzip的思想就是把文件先在服务器端进行压缩,然后再传输

    l         Put CSS at the Top CSS样式放在页面的上方

    l         Move scrīpts to the Bottom 将脚本放在底部

    l         Avoid CSS Expressions 避免使用CSS中的Expressions

    CSSExpressions 的代价却是极高的。当你的页面需要根据判断来渲染效果的元素很多的时候,那么你的浏览器将长期处于假死状态,从而给用户带来极差的用户体验。

    l         Make Javascrīpt and CSS External javascrīptcss独立成外部文件

    l         Reduce DNS Lookups 减少DNS查询

    DNS域名解析系统

    1:如果不是必须,请不要把网站放到两台服务器上。
    2
    :网页中的图片、css文件、js文件、flash文件等等,不要太多的分散在不同的网络空间中。这就是为什么那种只发一个网站中的壁纸图片的帖子,要比壁纸图片来源于不同网站的帖子显示要快得多的原因。

    l         Minify Javascrīpt 减少JavascrīptCSS文件的体积

    l         Avoid Redirects 避免跳转

    l         Remove Duplicate scrīpts 移除重复的脚本

    l         Configure ETags 配置你的实体标签

        EtagEntity tags )实体标签,给浏览器缓存用的。Etag是服务器告诉浏览器缓存,缓存中的内容是否已经发生变化的一种机制。通过Etag,浏览器就可以知道现在的缓存中的内容是不是最新的,需不需要重新从服务器上重新下载。

    l         Make Ajax Cacheable 上面的准则也适用Ajax(这个是没有的)

     

    Stats——这个视图会告诉你页面的总体统计信息。包括页面大小、css样式表大小、脚本文件大小、总体图片大小、flash文件大小和css中用到的图片文件大小。还会告诉你,哪些东西被缓存了,缓存了多少等等。

     

    Components——这个视图是一个页面所有部件的信息列表。从中我们可以得知每个部件的各种详细信息。如:类型、URLExpires数据、状态、大小、读取时间、ETag信息等等。通过对这个列表的分析,我们就可以知道到底是什么东西最耗费我们的资源,从而有针对性的进行优化。

     

    Tools——

    1.       JSLine工具会生成JSLine报表,报表是对本网页中JS脚本的分析报告,包含错误和建议

    2.       ALL JS工具,将生成本页面所有脚本代码便于阅读和打印的报表页面

    3.       ALL CSS工具,将生成本页面 所有CSS样式表代码便于阅读和打印的报表页面

    4.        Printable View将【Performance】和【Stats】视图中的信息生成一份更适合阅读和打印的报表页面

  • LR错误代码(2)-转

    2008-07-11 09:58:29

    Error -27727: Step download timeout (120 seconds)has expired when downloading resource(s). Set the "Resource Page Timeout is a Warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively
    •A
    、应用服务参数设置太大导致服务器的瓶颈
    •B
    、页面中图片太多

    •C
    、在程序处理表的时候检查字段太大多

     

    Error -27728: Step download timeout (120 seconds)的解决方法

     
    语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s)

    设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。

    Action.c(7): Error -27791: Server "10.10.0.88" has shut down the connection prematurely

    解决方案如下:

    1、应用服务器死掉。小用户时程序上的问题,程序上处理数据库的问题
    2
    、应用服务没有死。应用服务参数设置问题。例如:在许多客户端weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是weblogic中的server元素的acceptbacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25%
    3
    、数据库的连接
    在应用服务的性能参数可能太小了,数据库启动的最大连接数(跟硬件的内存有关)
    4、有时关闭卡巴斯基也会解决如上问题

  • 错误代码(1)-转

    2008-07-11 09:48:11

    在LoadRunner 负载测试的时候往往会报一些网络错误,可是一般都只有代码,下面这些就是对错误代码的一些简单描述

    • WSAEACCES (10013) Permission denied.

    试图使用被禁止的访问权限去访问套接字。例如,在没有使用函数setsockopt()的SO_BROADCAST命令设置广播权限的套接字上使用函数sendto()给一个广播地址发送数据。

    • WSAEADDRINUSE (10048) Address already in use.

    正常情况下每一个套接字地址(协议/IP地址/端口号)只允许使用一次。当应用程序试图使用bind()函数将一个被已存在的或没有完全关闭的或正在关闭的套接字使用了的IP地址/端口号绑扎到一个新套接字上时,该错误发生。对于服务器应用程序来说,如果需要使用bind()函数将多个套接字绑扎到同一个端口上,可以考虑使用setsockopt()函数的SO_REUSEADDR命令。客户应用程序一般不必使用bind()函数——connect()函数总是自动选择没有使用的端口号。当bind()函数操作的是通配地址(包括ADDR_ANY)时,错误WSAEADDRINUSE可能延迟到一个明确的地址被提交时才发生。这可能在后续的函数如connect()、listen()、WSAConnect()或WSAJoinLeaf()调用时发生。

    • WSAEADDRNOTAVAIL (10049) Cannot assign requested address.

    被请求的地址在它的环境中是不合法的。通常地在bind()函数试图将一个本地机器不合法的地址绑扎到套接字时产生。它也可能在connect()、 sendto()、WSAConnect()、WSAJoinLeaf()或WSASendTo()函数调用时因远程机器的远程地址或端口号非法(如0地址或0端口号)而产生。

    • WSAEAFNOSUPPORT (10047) Address family not supported by protocol family.

    使用的地址与被请求的协议不兼容。所有的套接字在创建时都与一个地址族(如IP协议对应的AF_INET)和一个通用的协议类型(如 SOCK_STREAM)联系起来。如果在socket()调用中明确地要求一个不正确的协议,或在调用sendto()等函数时使用了对套接字来说是错误的地址族的地址,该错误返回。

    • WSAEALREADY (10037) Operation already in progress.

    当在非阻塞套接字上已经有一个操作正在进行时,又有一个操作试图在其上执行则产生此错误。如:在一个正在进行连接的非阻塞套接字上第二次调用connect()函数;或取消一个已经被取消或已完成的异步请求(WSAAsyncGetXbyY())。

    • WSAECONNABORTED (10053) Software caused connection abort.

    一个已建立的连接被你的主机上的软件终止,可能是因为一次数据传输超时或是协议错误。

    • WSAECONNREFUSED (10061) Connection refused.

    因为目标主机主动拒绝,连接不能建立。这通常是因为试图连接到一个远程主机上不活动的服务,如没有服务器应用程序处于执行状态。

    • WSAECONNRESET (10054) Connection reset by peer.

    存在的连接被远程主机强制关闭。通常原因为:远程主机上对等方应用程序突然停止运行,或远程主机重新启动,或远程主机在远程方套接字上使用了“强制”关闭(参见setsockopt(SO_LINGER))。另外,在一个或多个操作正在进行时,如果连接因“keep-alive”活动检测到一个失败而中断,也可能导致此错误。此时,正在进行的操作以错误码WSAENETRESET失败返回,后续操作将失败返回错误码WSAECONNRESET。

    • WSAEDESTADDRREQ (10039) Destination address required.

    在套接字上一个操作所必须的地址被遗漏。例如,如果sendto()函数被调用且远程地址为ADDR_ANY时,此错误被返回。

    • WSAEFAULT (10014) Bad address.

    系统检测到调用试图使用的一个指针参数指向的是一个非法指针地址。如果应用程序传递一个非法的指针值,或缓冲区长度太小,此错误发生。例如,参数为结构sockaddr,但参数的长度小于sizeof(struct sockaddr)。

    • WSAEHOSTDOWN (10064) Host is down.

    套接字操作因为目的主机关闭而失败返回。套接字操作遇到不活动主机。本地主机上的网络活动没有初始化。这些条件由错误码WSAETIMEDOUT指示似乎更合适。

    • WSAEHOSTUNREACH (10065) No route to host.

    试图和一个不可达主机进行套接字操作。参见WSAENETUNREACH。

    • WSAEINPROGRESS (10036) Operation now in progress.

    一个阻塞操作正在执行。Windows Sockets只允许一个任务(或线程)在同一时间可以有一个未完成的阻塞操作,如果此时调用了任何函数(不管此函数是否引用了该套接字或任何其它套接字),此函数将以错误码WSAEINPROGRESS返回。

    • WSAEINTR (10004) Interrupted function call.

    阻塞操作被函数WSACancelBlockingCall ()调用所中断。

    • WSAEINVAL (10022) Invalid argument.

    提供了非法参数(例如,在使用setsockopt()函数时指定了非法的level)。在一些实例中,它也可能与套接字的当前状态相关,例如,在套接字没有使用listen()使其处于监听时调用accept()函数。

    • WSAEISCONN (10056) Socket is already connected.

    连接请求发生在已经连接的套接字上。一些实现对于在已连接SOCK_DGRAM套接字上使用sendto()函数的情况也返回此错误(对于SOCK_STREAM套接字,sendto()函数的to参数被忽略),尽管其它一些实现将此操作视为合法事件。

    • WSAEMFILE (10024) Too many open files.

    打开了太多的套接字。不管是对整个系统还是每一进程或线程,Windows Sockets实现都可能有一个最大可用的套接字句柄数。

    • WSAEMSGSIZE (10040) Message too long.

    在数据报套接字上发送的一个消息大于内部消息缓冲区或一些其它网络限制,或者是用来接受数据报的缓冲区小于数据报本身。

    • WSAENETDOWN (10050) Network is down.

    套接字操作遇到一个不活动的网络。此错误可能指示网络系统(例如WinSock DLL运行的协议栈)、网络接口或本地网络本身发生了一个严重的失败。

    • WSAENETRESET (10052) Network dropped connection on reset.

    在操作正在进行时连接因“keep-alive”检测到失败而中断。也可能由setsockopt()函数返回,如果试图使用它在一个已经失败的连接上设置SO_KEEPALIVE。




  • 确定需求的重要性

    2008-07-01 14:45:06

    工作中经常会出现这样的情况:项目要开始了,公司各部门的人坐到一起讨论一些具体的需求,争论于是开始了,因为有一些边缘性的事务总是明确不起来,争夺也总没完没了,于是确定需求就花了1个月。
    或是:由于项目较小时间紧,就简单问了下需求直接进入编程阶段,然而反馈的结果却是“这不是我要的东西”,又得从头再来,反而花费了更多的时间。
    ……
    需求不确定将直接导致前期架构无法考虑全面,中期编码的不确定感,后期测试阶段的需求不断变更。最终的结果当然是大家都很累却都不满意这个项目,而且项目可能延期严重。
    一些看似小case的未解决的冲突,到后来可能被无限放大,需求阶段的不明确,哪怕一个小小的问题,都会造成巨大的影响,在业务处理系统中尤其严重。所以需求阶段一定要明确各部门的职责,明确到每一荐数据的输入输出和处理,一旦这些东西全部确定了,项目离成功就很近了,在两个部门之间转移功能,如果是在项目后期,那将是一场灾难,有时候无法避免,但我们应该尽力,应该可以在需求阶段把能够讨论清楚的讨论清楚再说。
     
  • qc用户解锁

    2008-06-24 14:15:08

    在qc使用过程中,难免有一些用户名会由于这样那样的问题导致被锁。

    解锁过程如下(sql2005):

    打开QC的数据库,找到被锁的项目,打开表locks,然后删除相关的信息。that's ok~

  • QC导出测试用例(包含测试步骤)

    2008-06-20 16:11:46

    分析——》报告——》带有测试步骤的报告

    只可惜导出来的用例是根据时间来排列的~~~不是根据编号

  • 添加LR监视(windows)

    2008-06-03 11:56:05

    1. 监视连接前的准备工作

       首先保证被监视的windows系统开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service 。
       被监视的WINDOWS机器:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹,(要是没有自己手动加)
       然后保证在安装LR的机器上使用运行.输入\\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了

    2. 添加监控,修改度量指标

       run界面,右下图上右击,点击add measurements,添加监控机器,以及添加度量。弹出的对话框框里有2个多行文本框,上面的是ip,下面的就是具体的指标。当然可以监控的数据很多,不过一般添加processor-processor time;memery-pages/ sec   available Mbytes

    恩恩,就这些了~~~留个脚印

  • win2003server上qc9.0 安装

    2008-05-28 20:30:00

    为什么qc在2003server上不能自己启动,或者右击图标不能启动的原因

         ——没有加入域,致使系统中net logon服务不能启动,因此QC无法验证当前用户。系统日志如下:

    经过某位不署名大哥潜心研究,终于找出来的原因。这里截图留个记号,有需要的时候可以当作安装手册了。

    1. 安装win2003server(我说个废话),然后设置域

    ---开始-管理您的服务器-添加或删除角色--选择域控制器--域名**.**.**

    2. 安装SQL2005

    注意选基于X86,后面服务帐户选择本地内置,验证选混合验证。需要安装组建如下:

    3. 安装QC9.0

     

  • powerdesigner制造测试数据傻瓜篇1

    2008-05-27 23:17:26

    创建14位数据,yyyymmddhhmiss,例:20080425163425。

    这里的使用的是powerdesigner,数据库为sql2005。

    由于sql2005不支持yyyymmddhhmiss的datetime格式,所以创建表格字段时需要为varchar型。

    由于powerdesigner只支持ODBC,所以需要配置数据源。

    步骤:

    1.在sql2005中创建数据库test。(如果需要,可以创建test用户)

    2.管理工具-数据源-系统DSN,进入配置数据源,连接到test数据库。

    3.pd中建模表格。一列为ddh_person(varchar(30)),一列为ddh_num(datetime)。

    4.database-generate database,将会在sql2005中创建表格。

    5.database-generate test data,插入行数设置,datetime类型设置,然后确定,会在sql2005中插入数据。

    6.在sql中写语句并执行,具体如下:

    select * from ddh

    ----将datetime转换成varchar,并且格式为yyyy-mm-dd hh:mi:ss

    update ddh set ddh_person=convert(varchar,ddh_num,20)

    ----截取字符串并连接

    update ddh set ddh_person=
    substring(ddh_person,1,4)+
    substring(ddh_person,6,2)+
    substring(ddh_person,9,2)+
    substring(ddh_person,12,2)+
    substring(ddh_person,15,2)+substring(ddh_person,18,2)

     

    -------------------------------sql相关帮助:

    http://msdn.microsoft.com/zh-cn/library/ms187928.aspx  CAST 和 CONVERT (Transact-SQL)

    http://msdn.microsoft.com/zh-cn/library/ms189052.aspx  使用 SUBSTRING

Open Toolbar