发布新日志

  • 【面试】软件测试报告应该含有哪些内容

    2012-10-30 20:47:15

    软件测试报告应含有以下内容:

    1、测试项目及测试范围

    2、需求规格文档

    3、测试设计

    4、测试策略

    5、测试资源,环境配置

    6、测试用例覆盖情况

    7、测试执行进度

    8、bug分析:缺陷分布模块,缺陷类型分布情况,缺陷状态分布

    9、测试结论与建议

  • 时间控件测试

    2012-03-26 16:41:18

    时间控件的测试


    测试时注意

    1.跳过鼠标选择时间
    2.测试手动直接修改时间,保存。检查是否报错。
  • 做好性能测试需要了解的知识汇总

    2012-02-20 16:55:42

      

    转载至http://www.51testing.com/?uid-401211-action-viewspace-itemid-807833

         性能测试

      1. 如何理解TPS?

      2. 如何理解线程调用?

      3. 如何理解响应时间?

      4. 如何理解性能建模?(可分类回答)

      5. 如何理解响应时间、TPS曲线和用户之间的关系?

      6. 在LoadRunner中为什么要设置思考时间和pacing?

      应用服务器

      1. 如何理解J2EE的系统架构?

      2. 如何理解J2EE应用服务器的容器?

      3. 如何理解内存泄露?如何定位JAVA类的应用的内存泄露?如何定位C语言编写的应用的内存泄露?

      4. 如果用纯JAVA的应用调用J2EE应用服务器的容器资源会出现什么结果?需要如何维护容器资源?(说明原理即可)

      5. 如何定位JAVA的方法调用消耗的时间?(不通过在源代码中加时间戳的方式)?

      6. 如何定位C语言中的函数调用消耗的时间?

      7. 如何监控J2EE应用服务器?(可以用一个具体的应用服务器做例子)

      数据库

      1. 如何理解数据库架构?(可以用一个数据库做例子)

      2. SQL语句在数据库中的执行分成几步,每一步都做什么?(可以用一个数据库做例子)

      3. 如何跟踪SQL的执行时间和内存的消耗?(可以用一个数据库做例子)

      4. 如何监控数据库?监控能得到什么数据?(可以用一个数据库做例子)

      5. 如何定位死锁问题?如何定位热块问题?如何监控日志切换?(可以用一个数据库做例子)

      6. 有几种手段可以改变执行计划?(可以用一个数据库做例子)

      操作系统

      1. 如何判断CPU、内存、磁盘的瓶颈?

      2. 如何理解CPU、内存、磁盘之间的关系?

      3. 如何理解paging in/paging out?

      4. 如何监控操作系统的资源?(可以用一个操作系统做例子)

      5. 如何理解内存管理和线程调度?(可以用一个操作系统做例子)

      6. 如何理解CSwitch?(可以用一个操作系统做例子)

      7. 如何理解磁盘IO?(可以用一个操作系统做例子)

      网络

      1. 如何定位数据包的传输在网络上消耗的时间?

      2. 如何理解纯路由和NAT的区别?

      性能测试工具

      1. 解释LoadRunner的工作原理。

      2. 如何理解LoadRunner里的关联?

      3. 如何理解性能压力工具?

      4. 如何理解虚拟用户?(可以用一个工具做例子)

      5. 如果理解业务到脚本的转化?(可以用一个工具做例子)

      6. 如何做到业务统计数据到场景的转化?(可以用一个工具做例子)


  • 如何清楚描述BUG

    2011-10-13 09:54:15

    描述这个Bug的详细信息
    重现步骤(Repro Step)
    错误结果(Result)
    期望的改动(Expect)
    运行版本等
  • LR监控指标数据分析(转载)

    2011-09-05 15:37:04

    转至http://blog.csdn.net/anny_lv/article/details/5213894
    1.最大并发用户数:
     
    应用系统在当前环境(硬件环境、网络环境、软件环境(参数配置))下能承受的最大并发用户数。

      

    在方案运行中,如果出现了大于3个用户的业务操作失败,或出现了服务器shutdown的情况,则说明在当前环境下,系统承受不了当前并发用户的负载压力,那么最大并发用户数就是前一个没有出现这种现象的并发用户数。

      

    如果测得的最大并发用户数到达了性能要求,且各服务器资源情况良好,业务操作响应时间也达到了用户要求,那么OK。否则,再根据各服务器的资源情况和业务操作响应时间进一步分析原因所在。

     

    2.业务操作响应时间:

     ? 分析方案运行情况应从平均事务响应时间图和事务性能摘要图开始。使用事务性能摘要图,可以确定在方案执行期间响应时间过长的事务。

     ? 细分事务并分析每个页面组件的性能。查看过长的事务响应时间是由哪些页面组件引起的?问题是否与网络或服务器有关?

     ? 如果服务器耗时过长,请使用相应的服务器图确定有问题的服务器度量并查明服务器性能下降的原因。如果网络耗时过长,请使用网络监视器图确定导致性能瓶颈的网络问题

     3.服务器资源监控指标:

      内存:

         1 UNIX资源监控中指标内存页交换速率(Paging rate),如果该值偶尔走高,表明当时有线程竞争内存。如果持续很高,则内存可能是瓶颈。也可能是内存访问命中率低。

         2 Windows资源监控中,如果Process/Private Bytes计数器和Process/Working Set计数器的值在长时间内持续升高,同时Memory/Available bytes计数器的值持续降低,则很可能存在内存泄漏。

     内存资源成为系统性能的瓶颈的征兆:

         很高的换页率(high pageout rate);

        进程进入不活动状态;

        交换区所有磁盘的活动次数可高;

        可高的全局系统CPU利用率;

        内存不够出错(out of memory errors)

     处理器:

         1 UNIX资源监控(Windows操作系统同理)中指标CPU占用率(CPU utilization),如果该值持续超过95%,表明瓶颈是CPU。可以考虑增加一个处理器或换一个更快的处理器。如果服务器专用于SQL Server,可接受的最大上限是80-85%

         合理使用的范围在60%70%

         2 Windows资源监控中,如果System/Processor Queue Length大于2,而处理器利用率(Processor Time)一直很低,则存在着处理器阻塞。

     CPU资源成为系统性能的瓶颈的征兆:  

          很慢的响应时间(slow response time)

          CPU空闲时间为零(zero percent idle CPU)

          过高的用户占用CPU时间(high percent user CPU)

          过高的系统占用CPU时间(high percent system CPU)

         长时间的有很长的运行进程队列(large run queue size sustained over time)

     磁盘I/O

         1 UNIX资源监控(Windows操作系统同理)中指标磁盘交换率(Disk rate),如果该参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。

         2 Windows资源监控中,如果 Disk TimeAvg.Disk Queue Length的值很高,而Page Reads/sec页面读取操作速率很低,则可能存在磁盘瓶径。

     I/O资源成为系统性能的瓶颈的征兆 :

          过高的磁盘利用率(high disk utilization)

         太长的磁盘等待队列(large disk queue length)

         等待磁盘I/O的时间所占的百分率太高(large percentage of time waiting for disk I/O)

         太高的物理I/O速率:large physical I/O rate(not sufficient in itself)

         过低的缓存命中率(low buffer cache hit ratio(not sufficient in itself))

         太长的运行进程队列,但CPU却空闲(large run queue with idle CPU)

     4.数据库服务器:

     SQL Server数据库:

         1 SQLServer资源监控中指标缓存点击率(Cache Hit Ratio),该值越高越好。如果持续低于80%,应考虑增加内存。

        2 如果Full Scans/sec(全表扫描/秒)计数器显示的值比12高,则应分析你的查询以确定是否确实需要全表扫描,以及SQL查询是否可以被优化。

         3 Number of Deadlocks/sec(死锁的数量/):死锁对应用程序的可伸缩性非常有害,并且会导致恶劣的用户体验。该计数器的值必须为0

        4 Lock Requests/sec(锁请求/),通过优化查询来减少读取次数,可以减少该计数器的值。

     Oracle数据库:

       1 如果自由内存接近于0而且库快存或数据字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小。

         快存(共享SQL区)和数据字典快存的命中率:

        select(sum(pins-reloads))/sum(pins) from v$librarycache;

         select(sum(gets-getmisses))/sum(gets) from v$rowcache;

         自由内存:    select * from v$sgastat where name=’free memory’;

     2 如果数据的缓存命中率小于0.90,那么需要加大DB_BLOCK_BUFFERS参数的值(单位:块)。

       缓冲区高速缓存命中率:

         select name,value from v$sysstat where name in ('db block gets’,

     

         'consistent gets','physical reads') ;

         Hit Ratio = 1-(physical reads / ( db block gets + consistent gets))

     3 如果日志缓冲区申请的值较大,则应加大LOG_BUFFER参数的值。

         日志缓冲区的申请情况 :

          select name,value from v$sysstat where name = 'redo log space requests' ;

     4 如果内存排序命中率小于0.95,则应加大SORT_AREA_SIZE以避免磁盘排序 。

        内存排序命中率 :

          select round((100*b.value)/decode((a.value+b.value), 0, 1, (a.value+b.value)), 2)from v$sysstat a, v$sysstat b where a.name='sorts (disk)' and b.name='sorts (memory)'

         注:上述SQL ServerOracle数据库分析,只是一些简单、基本的分析,特别是Oracle数据库的分析和优化,是一门专门的技术,进一步的分析可查相关资料。

  • loadrunner监控服务器资源(windows、linux)

    2011-09-05 15:01:17

     

    转至http://blog.csdn.net/yongrong/article/details/6279468

     

    在配置好服务器前,尝试直接添加windows资源计数器,总是报错误:

    Windows Resources. Cannot connect to machine x.x.x.x(IP)
    Reason: Access is denied。

    开启lr监控的配置信息:

    1.控制面板》管理工具》服务,开启以下服务:Server、Remote Procedure Call(RPC) 、Remote Registry、Network DDE DSDM、Network DDE。

    2.被监视的WINDOWS机器:右击我的电脑,选择管理->共享文件夹->共享 在这里面要有C$这个共享文件夹(要是没有自己手动加)。

    3.保证被监控的服务器,能用管理员登录(LR要连接WINDOWS机器进行监视,要有管理员帐号和密码)。被监视的WINDOWS机器上管理工具 -> 本地安全策略 -> 安全选项 -> 网络访问:本地帐户的共享和安全模式,把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。

    4.装LR的机器上使用运行,输入 //被监视机器IP/C$ ,输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。如果不能共享,可能Server服务没有启动,请先启动此服务。

    5.Windows Resources 计数器,添加服务器,实时的数据取到了。

    监控linux服务器的配置如下:

      1、 修改/etc/xinetd.d/下的三个conf文件 rlogin , rsh ,rexec 这三个配置文件,把这三个文件里的disable =yes都改成 disable = no ( disabled 用在默认的 {} 中禁止服务),或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务。

      2、 执行: rpc.rstatd

      3、 检查是否启动rstatd,输入命令: rpcinfo –p。如果能看到:

      程序 版本 协议 端口

      *** **** udp 741 rstatd

      那就说明rstatd服务启动了

      4、 LR中添加计算器

      如果系统没有安装rstatd的话,上面的操作将会不成功,需要先安装rstatd,安装rstatd过程很简单:

      1、从安装光盘或网上找到安装文件(一般是rstatd***.tar.gz)

      2、解压缩安装包:

      tar xzvf rstatd***.tar.gz

      3、进入源文件目录运行配置文件和编译:

      $ ./configure

      $ make

      $ make install

      安装好之后,就按上面的步骤启动rstatd即可。

      (说明:以上的操作需要root用户权限)

  • LR问题集

    2011-06-14 09:16:05

    http://hi.baidu.com/gzh1209/blog/item/6c90502adab7aa83023bf63e.html

     

     

    问题1

    vuser_init.c1错误 -26612: 对于“http://count35.51yes.com/sa.aspx?id=353508940'+yesdata+'”,HTTP 状态代码=500 (Internal ServerError)       [MsgId:MERR-26612]

    解决解决办法:http://count35.51yes.com/sa.aspx?id=353508940'+yesdata+'服务器错误(漏掉一个参数)

     

    LoadRunner脚本回放问题及解决

     

    在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试。下面结合常用的协议(如WebWeb Services协议)录制的脚本进行回放时出现的问题介绍一下解决的方法。
      需要注意的是,回放脚本时出现的错误有时是程序自身的原因导致的,因此在解决脚本回放问题前必须保证程序录制出的脚本是正确的。

      1LoadRunner超时错误:在录制Web协议脚本回放时超时情况经常出现,产生错误的原因也有很多,解决的方法也不同。

      错误现象1Action.c(16): Error-27728: Step download timeout (120 seconds) has expired when downloadingnon-resource(s)

      错误分析:对于HTTP协议,默认的超时时间是120秒(可以在LoadRunner中修改),客户端发送一个请求到服务器端,如果超过120秒服务器端还没有返回结果,则出现超时错误。

      解决办法:首先在运行环境中对超时进行设置,默认的超时时间可以设置长一些,再设置多次迭代运行,如果还有超时现象,需要在“Runtime Setting>Internet ProtocolPreferences>Advanced”区域中设置一个“winlnet replay instead of sockets”选项,再回放是否成功。

      错误现象 2Action.c(81):Continuingafter Error -27498: Timed out while processingURL=http://172.18.20.70:7001/workflow/bjtel/leasedline/ querystat/subOrderQuery.do

      错误分析:这种错误常常是因为并发压力过大,服务器端太繁忙,无法及时响应客户端的请求而造成的,所以这个错误是正常现象,是压力过大造成的。


      如果压力很小就出现这个问题,可能是脚本某个地方有错误,要仔细查看脚本,提示的错误信息会定位某个具体问题发生的位置。

      解决办法:例如上面的错误现象问题定位在某个URL上,需要再次运行一下场景,同时在其他机器上访问此URL。如果不能访问或时间过长,可能是服务器或者此应用不能支撑如此之大的负载。分析一下服务器,最好对其性能进行优化。

      如果再次运行场景后还有超时现象,就要在各种图形中分析一下原因,例如可以查看是否服务器、DNS、网络等方面存在问题。

      最后,增加一下运行时的超时设置,在“Run-Time Settings>InternetProtocolreferences”中,单击“options”,增加“HTTP-request connect timeout 或者“HTTP-requestreceive”的值。

      2LoadRunner脚本中出现乱码:在录制Web协议脚本时出现中文乱码,在回放脚本时会使回放停止在乱码位置,脚本无法运行。

      错误现象:某个链接或者图片名称为中文乱码,脚本运行无法通过。

      错误分析:脚本录制可能采用的是URL-based script方式,如果程序定义的字符集合采用的是国际标准,脚本就会出现乱码现象。

      解决办法:重新录制脚本,在录制脚本前,打开录制选项配置对话框进行设置,在“RecordingOptions”的“Advanced”选项里先将“SurportCharset”选中,然后选中支持“UTF-8”的选项。

      3LoadRunner HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,

     

    会出现请求无法找到的现象,而导致脚本运行停止。

      错误现象:Action.c(41): Error -27979: Requested form. notfound [MsgId: MERR-27979]

      
    Action.c(41): web_submit_form. highest severity levelwas "ERROR",0 body bytes, 0 header bytes [MsgId: MMSG-27178]"

      这时在tree view中看不到此组件的相关URL


      错误分析:所选择的录制脚本模式不正确,通常情况下,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用HTTPS安全协议,这时则使用“URL-based script”模式进行录制。

      解决办法:打开录制选项配置对话框进行设置,在“Recording Options”的“Internet Protocol”选项里的“Recording”中选择“Recording Level”为“HTML-based script”,单击“HTML Advanced”,选择“Script. Type”为“A script. containing explicit”。然后再选择使用“URL-basedscript”模式来录制脚本。

      5LoadRunner不执行检查方法:在录制Web协议脚本中添加了检查方法Web_find,但是在脚本回放的过程中并没有执行。

      错误现象:在脚本中插入函数Web_find,在脚本中设置文本以及图像的检查点,但是在回放过程中并没有对设置的检查点进行检查,即Web_find失效。

      错误分析:由于检查功能会消耗一定的资源,因此LoadRunner默认关闭了对文本以及图像的检查,所以在设置检查点后,需要开启检查功能。

      解决办法:打开运行环境设置对话框进行设置,在“Run-time Settings”的“Internet Protocol”选项里的“Perference”中勾选“Check”下的“Enable Image and text check”选项。

      6LoadRunner回放Web Services协议脚本错误:LoadRunner 8.0版本在录制Web Services协议的脚本时正常,但在回放时会出现错误,提示停止脚本运行。

      错误现象:利用LoadRunner 8.0版本来录制WebServices协议的脚本没有任何错误提示,回放脚本时会出现如下错误提示“Errorserver returned an incorrectly formatted SOAP response”。

      错误分析:出现此错误的原因是LoadRunner8.0在录制Web Services协议的脚本时存在一个缺陷:
    如果服务器的操作系统是中文的,VuGen会自动将WSDL文件的头改为<?xml version="1.0"encoding="zh_cn" ?>,所以才会有此错误提示。

      解决办法:下载两个补丁,分别为“LR80WebServicesFPI_setup.exe”和“lrunner_web_ services_patch_1.exe”安装上即可。

    会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。

      错误现象1-404 Not Found服务器没有找到与请求URI相符的资源,但还可以继续运行直到结束。

      错误分析:此处与请求URI相符的资源在录制脚本时已经被提交过一次,回放时不可再重复提交同样的资源,而需要更改提交资源的内容,每次回放一次脚本都要改变提交的数据,保证模拟实际环境,造成一定的负载压力。

      解决办法:在出现错误的位置进行脚本关联,在必要时插入相应的函数。

      错误现象2-500 Internal ServerError服务器内部错误,脚本运行停止。

      错误分析:服务器碰到了意外情况,使其无法继续回应请求。

      解决办法:出现此错误是致命的,说明问题很严重,需要从问题的出现位置进行检查,此时需要此程序的开发人员配合来解决,而且产生的原因根据实际情况来定,测试人员无法单独解决问题,而且应该尽快解决,以便于后面的测试。

      4LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,

     

     

     

    7. 正在开始迭代 1

    警告 -27077: “每次迭代模拟一个新用户”运行时设置为“开”时,“vuser_init”节将包含 Web 函数。这可能会产生具有多次迭代的不可预测结果         [MsgId:MWAR-27077]

    正在开始操作 Action

     

    解决办法:F4运行时设置,浏览器仿真每次迭代模拟一个新用户,不要选这个。

     

     

     

    8.

    是因为在开始录制--》选项--》高级不能同时选择支持字符集和生成web_reg_find函数

     

    9. 太奇怪了,我选 HTTP/WEB录制,IE弹不出来?

    启动IE,进入Internet选线,切到高级,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可。通常安装Firfox等浏览器后,都会勾选这个选项,导致不能正常录制。因此建议LoadRunner的相关主机上保持一个干净的测试环境

    10.web_url("lnr_31", 

                  "URL=http://192.168.0.112:8181/XTBG/czrk/lnr/",

                  "TargetFrame=", 

                  "Resource=0", 

                  "RecContentType=text/html", 

                  "Referer=http://192.168.0.112:8181/XTBG/czrk/lnr/list.jsp?checkID=&searchinfo=+and+a.xm+like+%5Bquo%5D%5Bper%5D%CD%F5%5Bper%5D%5Bquo%5D&deptXID=51&isSearch=true",

                  "Snapshot=t43.inf", 

                  "Mode=HTML", 

                  LAST);

    这里面的Snapshot=xxx.inf 意思是对这个页面进行快照(可以看下LR里的录制快照,有页面显示的代码里都有这一段。。)

     

    11.vuser_init.c(12): Error -27796: Failed toconnect to server "192.168.3.8:9008": [10060] Connection timed out

      可能是服务器连接超时了

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

    解决办法:在场景里面到是可以将120S超时的设置改大,这样场景就可以通过而不报ERROR错误啦!

    13.Error-27492: "HttpSendRequest" failed, Windowserror code=12017 (cannot connect) and retry limit (0) exceeded forURL="https://HOSTNAME:6634/services/Imaging

    解决方案:

        Run-Time Settings -> Preferences-> Advanced. 确定此选项未被选中:"WinInetreplay instead of Sockets (Windows only)" 

    14. Action.c(4): 错误: C interpreter run time error: Action.c (4):  Error -- Unresolvedsymbol : LrsCreateSocket.

    解决方案:

        协议选择错误,新建单协议脚本时,请选择 Windows Sockets,新建多协议脚本时,添加上Windows Sockets

    15. 中文:
    16/06/2008 15:23:55 
    错误通信错误绑定套接字失败。此计算机上的某进程已绑定到同一地址。 [MsgId: MERR-10344]
    16/06/2008 15:23:55 
    错误通信错误 HTTP 通道服务器创建 TCP 服务器失败。
    [MsgId:MERR-10344]
    16/06/2008 15:23:55 
    错误双向通信错误函数 two_way_comm_create_acceptor 失败。
    [MsgId: MERR-60999]
    16/06/2008 15:23:55 
    警告创建“router”服务器失败。
    [MsgId: MWAR-29974]

    English:
    16/06
    /2008 15:19:59 Error: Communication error: Failed to bind socket. Aprocess on the machine is already bound to the same address. [MsgId:MERR-10344]
    16/06/2008 15:19:59 Error: Communication error: Failed to create a TCP serverfor the HTTP channel's server. [MsgId: MERR-10344]
    16/06/2008 15:19:59 Error: Two Way Communication Error: Functiontwo_way_comm_create_acceptor failed. [MsgId: MERR-60999]
    16/06/2008 15:19:59 Warning: Failed to create "router" server.[MsgId: MWAR-29974]

    解决方案:
          
    检查50500543455001<SPAN lang=EN-US st

  • LR监控

    2011-05-12 13:38:25

    转至

    http://www.51testing.com/?uid-13939-action-viewspace-itemid-99941
    1监视连接前的准备工作
    1) 在被监控WinXP主机上修改访问模式,办法是:安全策略在作怪(管理工具->本地安全策略->安全选项-> "网络访问:本地帐户的共享和安全模式")。默认情况下,XP的访问方式是"仅来宾"的方式,那么你访问它,当然就固定为Guest来访问,而guest账户没有监控的权限,所以要把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。
     
    注意:一定需要设置密码,否则在MonitorConfiguration中添加Measurements仍然会提示拒绝登录。
    2)保证被监视的winXP系统开启以下三个服务Remote Procedure Call(RPC)和Remote Registry Service、Remote Registry。其中Remote Procedure Call (RPC) Locator的登陆选项中要输入当前主机帐户和密码,然后重启该服务,其他服务设置不变。
    注意:网上有些写着只要开启两个服务Remote Procedure Call(RPC)和Remote Registry Service就可以,不确认其监视的Windows版本,但是Win XP必须开启Remote Registry这个服务。
    3)确认安装Controller的机器可以连接到被监视的WinXP机器。如果监控失败,并且LoadRunner找不到指定的服务器,请确认指定的服务器是否可用。在Controller或优化控制台计算机命令行中键入ping <server_name>(或ip),执行“ping”操作。
     
    4)验证可以正常连接之后,如果有其他问题,可以参见下表解决:
    问题
    解决方案


    无法监控其他域中的Windows计算机,或者“访问被拒绝”。
    要获得对远程计算机的管理权限,请在命令提示符下执行以下命令:
     
    %net use \\<计算机名>/用户:[<域>\<远程计算机名>]
     提示输入密码时,输入远程计算机的密码。

    无法监控NT/Win 2000计算机(发出一条错误消息:“未找到计算机名”或“无法连接到主机”)

    要监控的NT/Win 2000计算机仅允许具有管理员权限的用户进行监控。要允许非管理员用户进行监控,必须授予用户对特定文件和注册表项的读取权限(Microsoft技术说明编号Q158438)。需要执行下列步骤:
    a.使用浏览器或文件管理器,授予用户对下列项的读取权限:
           %windir%\system32\PERFCxxx.DAT
           %windir%\system32\PERFHxxx.DAT
        其中xxx是系统的基本语言ID,
        例如,英语的ID为009。这些文件可能
        已丢失或损坏。如果对此有怀疑,请从
        安装CD中提取这些文件。
    b.使用REGEDT32,授予用户对下列项的读取权限:
       HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib
        以及该项的所有子项。
    c.使用REGEDT32,至少授予用户对下列项的读取权限:
        HKEY_LOCAL_MACHINE\System\CurrentControlSet\    Control\SecurePipeServers\winreg

    无法从NT计算机监控某些Win 2000计数器。
    在Win 2000计算机上运行Controller或优化控制台。

    某些Windows默认计数器生成错误
    删除有问题的计数器,并使用“添加度量”对话框添加相应计数器。

    无法从被监控的计算机上获得SQL Server 6.5版的性能计数器。
    这是SQL Server 6.5版的一个错误。解决方法为:在被监控的计算机上使用regedt32,授予用户对以下注册表项的读取权限:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer
    (Microsoft技术说明编号Q170394)

    选定度量未显示在图中。
    确保已注册显示文件和online.exe。要在不执行完全安装的情况下注册监控器的dll,请运行LoadRunner\bin中的set_mon.bat批处理文件。

    监控Windows计算机时,图中不显示任何度量。
    检查内置的Windows性能监控器。如果该监控器不能正常工作,则可能是通信设置有问题。

    监控UNIX计算机时,图中不显示任何度量。
    确保rstatd正在UNIX计算机上运行(请参阅“系统资源监控”)。

    无法监控下列Web服务器之一:MS IIS、MS ASP或ColdFusion
    请参阅上面的问题“无法监控Windows计算机”。


    无法监控WebLogic (JMX)服务器
    打开<LoadRunner根文件夹>\dat\monitors\WebLogicMon.ini文件,并搜索:
    [WebLogicMonitor]
    JVM=javaw.exe
    将javaw.exe更改为java.exe。将打开一个包含跟踪信息的窗口。

    5)确认并打开共享文件。首先,在被监视的WINXP机器:右击我的电脑,选择管理->共享文件夹->共享在这里面要有C$这个共享文件夹。该文件可能存在,也可能不存在,没有的话,需要手动增加。然后,在安装LR的机器上使用运行,输入\\被监视机器IP\C$然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。
     
    注意:这两步必须都进行操作,否则即使该共享文件已经存在但未在LR机器中进行连接,也可能无法正常使用。
    2用LR监视windows的步骤
    具体步骤参见LoadRunner Controller User’s Guild > Working with Firewalls >Monitoring Over a Firewall>Configuring Server Monitor Properties。


     

  • LoadRunner监控服务器

    2011-04-25 17:18:30

    ************************本文非原创 **************转贴 51testing********************

    一、监控windows系统:
    1、监视连接前的准备工作
          1)进入被监视windows系统,开启以下二个服务Remote Procedure Call(RPC) 和Remote Registry Service (开始—)运行中输入services.msc,开启对应服务即可)。
          2)在被监视的WINDOWS机器上:右击我的电脑,选择管理->共享文件夹->共享在这里面要有C$这个共享文件夹 (要是没有自己手动加上)。
          3)在安装LR的机器上,开始—》运行,输入 \\被监视机器IP\C$ 然后输入管理员帐号和密码,如果能看到被监视机器的C盘了,就说明你得到了那台机器的管理员权限,可以使用LR去连接了。(LR要连接WINDOWS机器进行监视要有管理员帐号和密码才行。)
      问题:在执行步骤3)时,输入 \\被监视机器IP\C$,出现不能以administrator身份访问被监控系统(若采用这种方式用LR对其监控的话,会提示:“找不到网络路径”)的情况,现象就是用户名输入框是灰色的,并且默认用户是guest。
      解决办法:这是安全策略的设置问题(管理工具 -> 本地安全策略 -> 安全选项 -> "网络访问:本地帐户的共享和安全模式")。默认情况下,XP的访问方式是"仅来宾"的方式,如果你访问它,当然就固定为Guest来访问,而guest账户没有监控的权限,所以要把访问方式改为“经典”模式,这样就可以以administrator的身份登陆了。修改后,再次执行步骤3),输入管理员用户名和密码,就可以访问被监控机器C盘了
      若这样都不行的话(可能是其它问题引起的),那只好采取别的方法了。在服务器的机子上,通过windows自带的“性能日志和警报”下的“计数器日志”中新增加一个监控日志(管理工具—)性能—)性能日志和警报),配置好日志,也能监控服务器的cpu、memory、disk等计数器。当然,这种方法就不是用LR来监控了。

    2、用LR监视windows的步骤
      在controller 中,Windows Resources窗口中右击鼠标选择Add Measurements,添加被监控windows的IP地址,选择所属系统,然后选择需要监控的指标就可以开始监控了。

    二、监控linux
    1 准备工作
      可以通过两种方法验证服务器上是否配置了rstatd守护程序:
      ①使用rup命令,它用于报告计算机的各种统计信息,其中就包括rstatd的配置信息。使用命令rup 10.130.61.203,此处10.130.61.203是要监视的linux/Unix服务器的Ip,如果该命令返回相关的统计信息。则表示已经配置并且激活了rstatd守护进程;若未返回有意义的统计信息,或者出现一条错误报告,则表示rstatd守护进程尚未被配置或有问题。
      ②使用find命令
    #find / -name rpc.rstatd,该命令用于查找系统中是否存在rpc.rstatd文件,如果没有,说明系统没有安装rstatd守护程序。
      如果服务器上没有安装rstatd程序(一般来说LINUX都没有安装),需要下载一个包才有这个服务,包名字是rpc.rstatd-4.0.1.tar.gz. 这是一个源码,需要编译,下载并安装rstatd(可以在http://sourceforge.net/projects/rstatd这个地址下载)
    下载后,开始安装,安装步骤如下:
    tar -xzvf  rpc.rstatd-4.0.1.tar.gz
    cd  rpc.rstatd-4.0.1/
    ./configure  —配置操作
    make —进行编译
    make install —开始安装
    rpc.rstatd —启动rstatd进程

    2)安装完成后配置rstatd 目标守护进程xinetd,它的主配置文件是/etc/xinetd.conf ,它里面内容是一些如下的基本信息:
    #
    # xinetd.conf
    #
    # Copyright (c) 1998-2001 SuSE GmbH Nuernberg, Germany.
    # Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
    #
    defaults
    {
          log_type      = FILE /var/log/xinetd.log
          log_on_success  = HOST EXIT DURATION
          log_on_failure  = HOST ATTEMPT
         only_from    = localhost
          instances    = 30
          cps        = 50 10
    #
    # The specification of an interface is interesting, if we are on a firewall.
    # For example, if you only want to provide services from an internal
    # network interface, you may specify your internal interfaces IP-Address.
    #
       interface    = 127.0.0.1
    }
    includedir /etc/xinetd.d

    我们这里需要修改的是/etc/xinetd.d/下的三个conf文件 rlogin ,rsh,rexec 这三个配置文件,打这三个文件里的disable = yes都改成 disable = no ( disabled 用在默认的 {} 中禁止服务)或是把# default: off都设置成 on 这个的意思就是在xinetd启动的时候默认都启动上面的三个服务!
      说明:我自己在配置时,没有disable = yes这项,我就将# default: off改为:default: on,重启后(cd /etc/init.d/    ./xinetd restart)通过netstat -an |grep 514查看,没有返回。然后,我就手动在三个文件中最后一行加入disable = no,再重启xinetd,再使用netstat -an |grep 514查看,得到tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN结果,表明rsh服务器已经启动。

        只要保证Linux机器上的进程里有rstatd和xinetd这二个服务就可以用LR去监视了
    两点小的技巧:
    ①检查是否启动: rsh server 监听的TCP 是514。
    [root@mg04 root]# netstat -an |grep 514
    tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN
    如果能看到514在监听说明rsh服务器已经启动。
    ②检查是否启动: rstatd
    输入命令: rpcinfo -p
    如果能看到类似如下信息:
    程序 版本 协议 端口
    100001   udp  937  rstatd
    100001   udp  937  rstatd
    100001   udp  937  rstatd
    100001   udp  937  rstatd
    100001   udp  937  rstatd
    那就说明rstatd服务启动了,(当然这里也可以用ps ax代替)
    ③重起xinetd方法:
    在suse linux如下操作:
    cd /etc/init.d/
    ./xinetd restart
    看到网上有的地方说使用如下命令:
    # service xinetd reload
    # /sbin/service xinetd rstart
    不知道是在什么系统用的。
    ④安装rsh,和rsh-server两个服务包方法
    a. 卸载rsh
    # rpm –q rsh----------查看版本号
    # rpm -e 版本号---------卸载该版本。
    b.安装
    # rpm –ivh rsh-0.17-14.i386.rpm rsh-server-0.17-14.i386.rpm
    ⑤在启动rpc.rstatd时,会报错“Cannot register service: RPC: Unable to receive; errno = Ction refused”。
    解决方法如下:
    # /etc/init.d ./portmap start
    # /etc/init.d ./nfs start
    然后再次启动rpc.rstatd就好了。

    最后,在controller中,将UNIX resources拖放到右边窗口里面,右击鼠标选择Add Measurements,添加被监控linux的IP地址,然后选择需要监控的指标就可以了。

    三、监控UNIX
    lr监控UNIX ,UNIX先启动一rstatd服务
      以下是在IBM AIX系统中启动rstatd服务的方法:
    1、      使用telnet以root用户的身份登录入AIX系统
    2、      在命令行提示符下输入:vi /etc/inetd.conf
    3、      查找rstatd,找到
    #rstatd  sunrpc_udp    udp    wait  root  /usr/sbin/rpc.rstatd rstatd 100001 1-3
    4、将#去掉
    5、:wq保存修改结果
    6、命令提示符下输入:refresh –s inetd 重新启动服务。
    这样使用loadrunner就可以监视AIX系统的性能情况了。

    注:在HP UNIX系统上编辑完inetd.conf后,重启inetd服务需要输入inetd -c
    UNIX上也可以用rup命令查看rstatd程序是否被配置并激活
    若rstatd程序已经运行,重启时,先查看进程ps -ef |grep inet,然后杀掉进程,再refresh –s inetd进行重启

  • LR函数关联

    2011-04-25 16:14:20

    用户指南上的

    执行手动关联

    对于 Web Vuser,VuGen 的自动关联或基于规则的关联通常关联脚本的动态函数,从而可以成功运行脚本。还可以使用 VuGen 快照比较在录制会话之后执行关联。

    对于无线 Vuser 和其他不适用自动关联的 Vuser 脚本,VuGen 也允许手动关联脚本。可以通过添加代码关联函数来手动关联脚本。允许将数据动态保存到参数的函数是 web_reg_save_param

    运行脚本时,web_reg_save_param 函数将扫描所访问的后续 HTML 页。如果指定左边界和/或右边界,VuGen 将搜索这些边界之间的文本。VuGen 找到文本后,会将其分配给某个参数。

    函数的语法如下所示:

    int web_reg_save_param (const char *mpszParamName, <属性列表>, LAST);

    下表列出可用的属性。注意,属性值字符串(例如 Search=all)不区分大小写。

    NotFound
    找不到边界并且生成了空字符串时的处理方法。默认值“ERROR”表示找不到边界时 VuGen 应发出错误消息。如果设置为“EMPTY”,则不会发出错误消息,并且脚本执行将继续。注意,如果为脚本启用了“出现错误时仍继续”,那么即使将 NOTFOUND 设置为“ERROR”,在找不到边界时脚本将仍然会继续执行,但会将错误消息写入扩展日志文件中。
    LB
    参数或动态数据的左边界。此参数必须为非空的、以 null 结尾的字符串。边界参数区分大小写;要忽略大小写,请在边界之后添加“/IC”。要指定二进制数据,请在边界之后指定“/BIN”。
    RB
    参数或动态数据的右边界。此参数必须为非空的、以 null 结尾的字符串。边界参数区分大小写;要忽略大小写,请在边界之后添加“/IC”。要指定二进制数据,请在边界之后指定“/BIN”。
    RelFrameID
    与请求的 URL 相关的 HTML 页的层次结构级别。可能的值为 ALL 或数字。
    Search
    搜索范围 - 搜索已分隔的数据的位置。可能的值包括 Headers(仅搜索页眉)、Body(仅搜索正文数据,而不包括页眉)或 ALL(搜索正文和页眉)。默认值为 ALL。
    ORD
    此可选参数表示匹配的序号或出现的次数。默认序号为 1。如果指定“All”,则会将参数值保存在数组中。
    SaveOffset
    找到的值的子字符串偏移量,将保存到参数中。默认值为 0。偏移量值必须为非负数。
    Savelen
    找到的值的子字符串的长度(在指定的偏移量中),将保存到参数中。默认值为 ñ1,表示直到字符串的末尾。
    Convert
    要应用于数据的转换方法:
    HTML_TO_URL:将 HTML 编码数据转换为 URL 编码数据格式
    HTML_TO_TEXT:将 HTML 编码数据转换为纯文本格式

    要手动关联脚本,请执行下列操作:

    1. 标识包含动态数据的语句和表现数据边界的模式。请参阅“定义动态字符串的边界”
    2. 在脚本中,用您自己的参数名替换动态数据。有关详细信息,请参阅下列内容。
    3. web_reg_save_param 函数添加到脚本中包含动态数据的语句之前。请参阅“添加关联函数”或《联机函数参考》(“帮助”>“函数参考”)。
  • lr html和url录制的区别

    2011-04-22 17:32:41

     
    Web(HTTP/HTML)录制中,有2种重要的录制模式。用户该选择那种录制模式呢?
    HTML-mode录制是缺省也是推荐的录制模式。它录制当前网页中的HTML动作。
    在录制会话过程中不会录制所有的资源。在回放时,HTML-mode脚本积极地解析返回的信息来获得要下载的资源。
    HTML-mode是亦称上下文敏感方式因为它只能在先前请求的结果的上下文之内执行。由于许多的HTTP 请求数据都是从内存中取出来的,所以语句必须在正确的前个请求之后执行。
    HTML-mode录制的优点是:
    1.资源从内存中取出且在回放时下载。因此,脚本比其他的录制方式更小且更容易阅读。
    2.由于只有较少的硬编码脚本,因此只有较少的动态数值需要关联。
    3.可以插入图片检查之类的语句以检查结果是否正确。
    4.因为HTML模式回放时需要积极地解析返回的信息,因此它可能会比其他录制模式更加占用资源。然而,HTML模式record/replay有相当大的改善,使得差异最小化且微不足道。

    URL-mode选项指导VuGen录制来自server的所有的请求和资源。它自动录制每一个HTTP资源为URL的步骤。这种录制模式甚至抓取非HTML应用程序,例如applets和非浏览器的应用程序。推荐使用这种录制方式录制以下情况:
    1。录制非browser的应用程序
    2。取得在下载或不下载哪些资源上更好的控制,既然你可以在脚本中修改。
    3。当使用LR6.x时,录制使用applet和/或javascript的浏览器应用程序
    由于URL-模式录制了所有的请求和资源,需要做更多的关联。脚本看起来也会相当的长。
    -------------------------------------

    我发现用这两种模式录制Mercury的网页(http://www.mercury.com/),结果却有很大差别,HTML-based的response time是7.4秒左右,而URL-based的却达到22秒左右。根据MI上面的解释,估计是由于HTML-based模式的资源占用,从内存中读数据引起的。



    在使用LoadRunner进行WEB脚本录制的时候,很多人不清楚URL-based 方式和 HTML-based方式的差别,以及何种情况下使用何种录制方式,这里给出一个简单的判断方法。
    HTML-based 方式
    HTML-based 方式对每个页面录制形成一条语句,对LoadRunner来说,在该模式下,访问一个页面,首先会与服务器之间建立一个连接获取页面的内容,然后从页面中分解得到其他的元素(component),然后建立几个连接分别获取相应的元素。
    URL-based 方式
    URL-based 方式将每条客户端发出的请求录制成一条语句,对LoadRunner来说,在该模式下,一条语句只建立一个到服务器的连接,LoadRunner提供了 web_concurrent_start和web_concurrent_end函数模拟HTML-based的工作方式。
    如何决定选择何种录制方式?
    1、如果应用是WEB应用,首选是HTML-based方式;
    2、如果应用是使用HTTP协议的非WEB应用,首选是URL-based方式;
    3、如果WEB应用中使用了java applet程序,且applet程序与服务器之间存在通讯,选用URL-based方式;
    4、如果WEB应用中使用的javascript、vbscript脚本与服务器之间存在通讯(调用了服务端组件),选用URL-based方式。
  • 文档分类名称

    2011-04-14 17:05:44


    工作产品名 特征符 缩写含义
    项目计划 PP Project Plan
    过程和产品质量保证计划 PPQAP Process And Product Quality Assurance Plan
    配置管理计划 SCMP Software Configuration Management Plan
    工作产品表 WP Work Product
    工作细分表 WBS Work Breakdown Structure
    任务描述单 TDF Task Description Form
    进度安排表 PS Project Schedule
    项目跟踪监控表 PT Project Tracking and oversight
    项目进展度量表 PM Project Measurement
    产品审批表 PAF Product Approval Form
    项目问题状态日志 PSL Problem Status Log
    风险分析表 RA Risk Analysis
    风险应对措施日志 RMAL Risk Mitigation Action Log
    项目变更申请 PCR Project Change Request
    个人每周状态报告(个人周报) WSR Weekly Status Report
    小组每周状态报告(小组周报) TWR Team Weekly Report
    项目每周状态报告(项目周报) PWR Project Weekly Report
    工作会议纪录 WMM Work Meeting Minutes
    配置项状态统计 CSA Configuration Status Accounting
    变更和问题状态日志 CPL Change & Problem Log
    配置变更请求单 CCR Configuration Change Request
    软件问题报告 SPR Software Problem Report
    配置审计报告 CMA Configuration Management Audit
    版本说明书 VDD Version Description Document
    QA审计报告 QAAR Quality Assurance Audit report
    QA检查单 CKL Checklists
    验收测试计划 ATP Software Acceptance Test Plan
    评审报告 RWR Review Report
    项目验收报告 PAR Project Acceptance Report
    项目开发总结报告 PDS Project Development Summary
    可跟踪矩阵 RTM Requirement Traceability Matrix

    工作产品名称 特征符 缩写含义
    软件需求分析 SRS Software Requirement Specification
    概要设计说明 HLD High Level Design
    详细设计说明 DDS Detailed Design Specification
    源代码 SCL Source Code List
    系统测试计划 STP System Test Plan
    集成测试计划 ITP Integration Test Plan
    单元测试计划 UTP Unit Test Plan
    系统测试用例 STC System Test Case
    集成测试用例 ITC Integration Test Case
    单元测试用例 UTC Unit Test Case
    单元测试报告 UTR Unit Test Report
    集成测试报告 ITR Integration Test Report
    系统测试报告 STR System Test Report
    发布测试结论 RTR Release-Test Report
    产品发布说明 RN Product Release Specification
    用户手册 UMF User Manual Final
    操作手册 OPM Operating Manual
    安装维护手册 SIM System Installation Manual
    用户培训手册 UTM User Training Manual
  • 遇见需求不清楚、BUG不确定时

    2011-03-24 11:38:05


    1.有时遇见感觉很奇怪的问题,不管是不是问题都将其记录下来,然后多思考会;

    最好问下研发,不要怕丢脸,如果不是问题更好,是问题说不定就是个大问题哈!!!

    2. 将需求了解清楚。比如在软件内嵌入的WEB页面,在软件内/单独页面是否都要测试.

    3. 在测试某项功能时,需要在每个跟之有关联的路径都要测。(为什么老是忘记呢??!猪呀)

  • lr中如何做脚本关联【转】

    2011-03-07 11:05:57

     

    转至:http://www.51testing.com/?uid-156363-action-viewspace-itemid-108431

    当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏览器与服务器之间所有的对话,包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了client端要对server端所说的话,而Recording Log则是完整纪录二者的对话。

    当执行脚本时,您可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器,然后把网站内容传送给VuGen。
    所以纪录在脚本中要跟服务器所说的话,完全与当初录制时所说的一样,是写死的(hard-coded)。这样的作法在遇到有些比较聪明的服务器时,还是会失效。这时就需要透过「关联(correlation)」的做法来让VuGen可以再次成功地骗过服务器。
    何谓关联(correlation)?
    所谓的关联(correlation)就是把脚本中某些写死的(hard-coded)数据,转变成是撷取自服务器所送的、动态的、每次都不一样的数据。
    举一个常见的例子,刚刚提到有些比较聪明的服务器,这些服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。
    下面的图示说明了这样的情形:
    当录制脚本时,浏览器送出网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再送出网页B的情求时,这时就要用到ID=123的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。
    在执行脚本时会发生什么状况?浏览器再送出网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,整个脚本的执行就会失败。

    要对付这种服务器,我们必须想办法找出这个Session ID到底是什么、位于何处,然后把它撷取下来,放到某个参数中,并且取代掉脚本中有用到Session ID的部份,这样就可以成功骗过服务器,正确地完成整个交易了。
    哪些错误代表着我应该做关联(correlation)?
    假如脚本需要关联(correlation),在还没做之前是不会执行通过的,也就是说会有错误讯息发生。不过,很不幸地,并没有任何特定的错误讯息是和关联(correlation)有关系的。会出现什么错误讯息,与系统实做的错误处理机制有关。错误讯息有可能会提醒您要重新登入,但是也有可能直接就显示HTTP 404的错误讯息。
    要如何做关联(correlation)?
    关联(correlation)函数
    关联(correlation)会用到下列的函数:
    • web_reg_save_param:这是最新版,也是最常用来做关联(correlation)的函数。
    语法:
    web_reg_save_param ( “Parameter Name” , < list of Attributes >, LAST );
    • web_create_html_param、web_create_html_param_ex:这二个函数主要是保留作为向前兼容的目的的。建议使用 web_reg_save_param 函数。
    详细用法请参考使用手册。在VuGen中点选【Help】>【Function reference】>【Contexts】>【Web and Wireless Vuser Functions】>【Correlation Functions】。
    如何找出要关联(correlation)数据
    简单的说,每一次执行时都会变动的值,就有可能需要做关联(correlation)。
    VuGen提供二种方式帮助您找出需要做关联(correlation)的值:
    1. 自动关联
    2. 手动关联
    自动关联
    VuGen内建自动关联引擎(auto-correlation engine),可以自动找出需要关联的值,并且自动使用关联函数建立关联。
    自动关联提供下列二种机制:
    • Rules Correlation:在录制过程中VuGen会根据订定的规则,实时自动找出要关联的值。规则来源有两种:
    o 内建(Built-in Correlation):
    VuGen已经针对常用的一些应用系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,内建关联规则,这些应用系统可能会有一种以上的关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】中启用关联规则,则当录制这些应用系统的脚本时,VuGen会在脚本中自动建立关联。
    您也可以在【Recording Options】>【Internet Protocol】>【Correlation】检视每个关联规则的定义。
    o 使用者自订(User-defined Rules Correlation):
    除了内建的关联规则之外,使用者也可以自订关联规则。您可以在【Recording Options】>【Internet Protocol】>【Correlation】建立新的关联规则。
    • Correlation Studio:有别于Rules Correlation,Correlation Studio则是在执行脚本后才会建立关联,也就是说当录制完脚本后,脚本至少须被执行过一次,Correlation Studio才会作用。Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
    Rule Correlation
    请依照以下步骤使用Rule Correlation:
    1. 启用auto-correlation
    1. 点选VuGen的【Tools】>【Recording Options】,开启【Recording Options】对话窗口,选取【Internet Protocol】>【Correlation】,勾选【Enable correlation during recording】,以启用自动关联。
    2. 假如录制的应用系统属于内建关联规则的系统,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,请勾选相对应的应用系统。
    3. 或者也可以针对录制的应用系统加入新的关联规则,此即为使用者自订的关联规则。
    4. 设定当VuGen侦测到符合关联规则的数据时,要如何处理:
     【Issue a pop-up message and let me decide online】:跳出一个讯息对话窗口,询问您是否要建立关联。
     【Perform. correlation in sceipt】:直接自动建立关联
    2. 录制脚本
    开始录制脚本,在录制过程中,当VuGen侦测到符合关联规则的数据时,会依照设定建立关联,您会在脚本中看到类似以下的脚本,此为BroadVision应用系统建立关联的例子,在脚本批注部分可以看到关联前的数据为何。

    3. 执行脚本验证关联是OK的。
    Correlation Studio
    当录制的应用系统不属于VuGen预设支持的应用系统时,Rule Correlation可能既无法发挥作用,这时可以利用Correlation Studio来做关联。
    Correlation Studio会尝试找出录制时与执行时,服务器响应内容的差异部分,藉以找出需要关联的数据,并建立关联。
    使用Correlation Studio的步骤如下:
    1. 录制脚本并执行
    2. 执行完毕后,VuGen会跳出下面的【Scan Action for Correlation】窗口,询问您是否要扫描脚本并建立关联,按下【Yes】按钮。

    3. 扫描完后,可以在脚本下方的【Correlation Results】中看到扫描的结果。

    4. 检查一下扫瞄的结果后,选择要做关联的数据,然后按下【Correlate】按钮,一笔一笔做,或是按下【Correlate All】让VuGen一次就对所有的数据建立关联。
    注意:由于Correlation Studio会找出所有有变动的数据,但是并不是所有的数据都需要做关联,所以不建议您直接用【Correlate All】。
    5. 一般来说,您必须一直重复步骤1~4直到所有需要做关联的数据都找出来为止。因为有时前面的关联还没做好之前,将无法执行到后面需要做关联的部份。
    有可能有些需要做关联的动态数据,连Correlation Studio都无法侦测出来,这时您就需要自行做手动关联了。
    手动关联
    手动关联的执行过程大致如下:
    1. 使用相同的业务流程与数据,录制二份脚本
    2. 使用WinDiff工具协助找出需要关联的数据
    3. 使用web_reg_save_param函数手动建立关联
    4. 将脚本中有用到关联的数据,以参数取代
    接下来将详细的说明如何执行每个步骤
    使用相同的业务流程与数据,录制二份脚本
    1. 先录制一份脚本并存档。
    2. 依照相同的操作步骤与数据录制第二份脚本并存盘。注意,所有的步骤和输入的数据一定都要一样,这样才能找出由服务器端产生的动态数据。
    有时候会遇到真的无法使用相同的输入数据,那您也要记住您使用的输入数据,到时才能判断是您输入的数据,还是变动的数据。
    使用WinDiff工具协助找出需要关联的数据
    1. 在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份脚本。
    2. 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。
    3. 逐一检视二份脚本中差异的部份,每一个差异都可能是需要做关联的地方。选取差异的脚本,然后复制。
    在复制时,有时并不需要取整行脚本,可能只会选取脚本中的一部分。
    注意:请忽略lr_thik_time的差异部份,因为lr_thik_time是用来模拟每个步骤之间使用者思考延迟的时间。

    4. 接着要在Recording Log(单一protocol)或是Generation Log(多重protocol)中找这个值。将鼠标光标点到Recording Log的第一行开头,按下Ctrl+F,开启【Find】窗口,贴上刚刚复制的脚本,找出在Recording Log第一次出现的位置。

    结果会有二种:
    o 在Recording Log中找不到要找的数据,这时请先确认您找对了脚本,毕竟现在开启了二个几乎一样的脚本,很容易弄错。
    o 在Recording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response可以知道数据是从服务器端传送到client端的。假如此数据第一次出现是在Sending request中,则表示此数据是由client端产生,不需要做关联,但是有可能需要做参数化(parameterized)。
    您要找的标头格式如下:
    *** [tid=b9 Action1 2] Receiving response from host astra.merc-int.com:80 ( 25/11/2002 12:04:00 )

    5. 现在您已经找到录制二次都不一样,而且是由服务器所产生的动态数据了,而此数据极有可能需要做关联。
    使用web_reg_save_param函数手动建立关联
    在找到是由服务器所产生的动态数据之后,接下来要做的就是找出适当的位置,使用web_reg_save_param函数,将这个动态数据撷取到某个参数中。
    1. 要在哪里使用web_reg_save_param函数?
    在之前的步骤,我们已经在Execution Log找到可能需要关联的动态数据。在Execution Log中选取动态数据前的文字然后复制,我们将会利用这段文字,来帮助我们找出要关联的动态数据。

    不过在这之前我们要先找出使用web_reg_save_param函数的正确位置,所以我们要再重新执行一遍脚本,而且这次会开启所有的Log。
    1. 在VuGen中点选【Vuser】>【Run-Time Settings】。
    2. 点选【General】>【Log】。
    3. 勾选【Enable logging】、【Always sends messages】、【Extended log】,以及【Extended log】下的所有选项。
    4. 按下【OK】就可以执行脚本了。
    执行完脚本之后,在Execution Log中搜寻刚刚复制的字符串。找到字符串后,在字符串前面会有A.tion1.c(7),这个7就是到时候要插入web_reg_save_param函数的位置,也就是要插入到脚本的第7行。
    在脚本的第7行前插入一行空白行,然后输入
    web_reg_save_param(“UserSession”,
    “UserSession” 这个 “UserSession” 就是到时要使用的参数名称,建议给个有意义的名字。
    注意:到这里整个web_reg_save_param函数还没完成。

    2. 找出web_reg_save_param中要用到的边界
    web_reg_save_param函数主要是透过动态数据的前面和后面的固定字符串,来辨识要撷取的动态数据的,所以我们还需要找出动态数据的边界字符串。
    找出左边界字符串
    再回到Execution Log中,选取动态数据前的字符串并且复制它。
    这时会有个问题,到底要选取多少字符串才足以唯一识别要找的动态数据呢?建议是越多越好,但是尽量不要包含到特殊字符。
    在这边我们选取「input type=hidden name=userSession value=」字符串。选好之后,还要再确认一次这段字符串真的是可以唯一识别的,所以我们在Execution Log中透过Ctrl+F的搜寻,找找看这段字符串是否可以找到要找的动态数据。假如找不到,web_reg_save_param函数还有个ORD参数可以使用,ORD参数可以设定出现在第几次的字符串才是要找的字符串。
    将这个边界字符串加到未完成的web_reg_save_param函数中:
    web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”,
    找出右边界字符串
    接下来要找出动态数据的右边界字符串,这个字符串就比较好找了,从动态数据的最后一个字符开始,通常就是我们要找的右边界字符串了。
    以这个例子来看,就是「>」,所以再把右边界字符串加入,web_reg_save_param函数中,这时web_reg_save_param函数已经快完成了。最后再加上「LAST);」就完成整个web_reg_save_param函数了。
    web_reg_save_param(“UserSession”, “LB= input type=hidden name=userSession value=”, “RB=>”, LAST);

    将脚本中有用到关联的数据,以参数取代
    当使用web_reg_save_param建立参数后,接下来就是用“UserSession”参数去取代脚本中写死的(hard-coded)资料。
    范例:

    “Name=userSession”, “Value=75893.0884568651DQADHfApHDHfcDtccpfAttcf”, ENDITEM,
    换成
    “Name=userSession”, “Value={UserSession}”, ENDITEM,

    到这里您已经完成了一个关联了,接下来就是执行脚本,是否能成功运行,假如还是有问题,就要检查看看是否还需要再做另一个关联。
    关于 web_reg_save_param 函数
    对于关联(correlation)来说,web_reg_save_param是最重要的一个函数,其功能是在下载的网页内容中,透过设定的边界字符串,找出特定的数据并将其储存在一个参数中,以供后续脚本使用。
    接下来将针对web_reg_save_param做比较详细的说明。
    Service and registration type function
    web_reg_save_param是一个Service function。service function主要是用来完成一些特殊的工作的,如关联、设定proxy、提供认证信息等,当其作用时,不会对网页的内容做任何的修改。
    web_reg_save_param同时也是一个registration type function (只要函数名称中包含_reg_的字眼,表示其为registration type function)。registration type function意味着其真正作用的时机是在下一个action function完成时执行的。举例来说,当某个web_url执行时所接收到的网页内容中包含了要做关联的动态数据,则必须将web_reg_save_param放在此web_url之前,则web_reg_save_param会在web_url执行完毕后,也就是网页内容都下载完后,再执行web_reg_save_param找寻要做关联的动态数据并建立参数。
    所以要记住一点,要使用registration type function时,要注意其放置的位置必须在要作用的action function之前。
    语法
    int web_reg_save_param(const char *ParamName, , LAST);
    参数说明
    ParamName:存放动态数据的参数名称
    list of Attributes:其它属性,包含 Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, 以及 SaveLen。属性值不分大小写,例如 Search=all。以下将详细说明每个属性值的意义:
    • Notfound:指定当找不到要找的动态数据时该怎么处置。
    o Notfound=error:当找不到动态数据时,发出一个错误讯息。假如没设定此属性,此为LoadRunner的默认值。
    o Notfound=warning:当找不到动态数据时,不发出错误讯息,只发出警告,脚本也会继续执行下去不会中断。在对角本除错时,可以使用此属性值。
    • LB:动态数据的左边界字符串。此属性质是必须要有的,而且区分大小写。
    • RB:动态数据的右边界字符串。此属性质是必须要有的,而且区分大小写。
    • RelFrameID:相对于URL而言,欲搜寻的网页的Frame。此属性质可以是All或是数字,而且可有可无。
    • Search:搜寻的范围。可以是Headers(只搜寻headers)、Body(只搜寻body部分,不搜寻header)、Noresource(只搜寻body部分,不搜寻header与resource)或是All(搜寻全部范围,此为默认值)。此属性质可有可无。
    • ORD:指明从第几次出现的左边界开始才是要撷取的数据。此属性质可有可无,默认值是1。假如值为All,则所有找到符合的数据会储存在数组中。
    • SaveOffset:当找到符合的动态数据时,从第几个字符开始才开始储存到参数中。此属性质不可为负数,其默认值为0。
    • Convert:可能的值有二种:
    o HTML_TO_URL: 将HTML-encoded数据转成URL-encoded数据格式
    o HTML_TO_TEXT:将HTML-encoded数据转成纯文字数据格式
    • SaveLen:从offect开始算起,到指定的长度内的字符串,才储存到参数中。此参数可有可无,默认值是-1,表示储存到结尾整个字符串。
    范例
    web_reg_save_param("A", "LB/ic=<a href=", "RB='>", "Ord=All", LAST);nner会搜寻网页中所有以「」结束,当中包含的字符串,并且储存在「A」参数中。
    Tips and Tricks
    以下提供一些关联的常见问题:
    • 如何打印出参数值?
    lr_output_message这二个函数来做到。例如:
    lr_output_message(“Value Captured = %s”, lr_eval_string(“{ParameterName}”));
    lr_eval_string与lr_output_message函数的使用说明请参考LoadRunner Online Function Reference。
    • 在脚本的data目录下找不到路制时的快照(snapshot)
    造成在脚本的data目录下找不到路制时的快照(snapshot)的可能原因如下:
    o 脚本是由VuGen 6.02或更早的版本所录制的
    o 汇入的Action不会包含快照(snapshot)的档案
    o 脚本是储存在只读的目录下,早成VuGen无法储存执行时撷取的快照(snapshot)
    o 某些步骤并不会产生快照(snapshot),如浏览某个资源
    o 快照(snapshot)功能被取消
    【Tools】>【General options】>【Correlation】tab >【Save correlation information during replay】
    • 开启WinDiff时出现「File no longer available」的错误讯息
    WinDiff这个工具有些限制,无法开启包含空格符的目录或是脚本,所以建议命名时不要使用空格符,并且尽可能将名称取短一点。
    • 录制时突然跳出【Correlation warning】对话窗口
    当你有勾选自动关联的【Issue a popup message and let me decide online】选项,当VuGen发现有可能要做关联的数据时,就会跳出【Correlation warning】的窗口,询问你要做关联(Correlation in script)还是要忽略(Ignore)。
    另外你也可以勾选【Perform. correlation in script】,让VuGen自动作关联,不会再跳出询问窗口。
    或是勾选【Disable correlation engine】,关闭自动关联的功能。

    • 如何手动启动「Scan action for correlation」的功能
    要手动启动「Scan action for correlation」的功能,请先执行脚本一次后,点选【Vuser】>【Scan Action for Correlation】。

    • 执行完脚本后并未出现【Scan Action for Correlation】窗口
    要启用【Scan Action for Correlation】功能,请点选【Tools】>【General options】>【Correlation】tab,勾选【Show Scan for correlation popup after replay of Vuser】选项。

  • TD问题解决方法

    2011-03-07 10:56:24

    1、建议开启    Symantec AntiVIrus和MSFTESQL服务   
    然后重启机子

    2、重装TD

    3。IE8与TD8不兼容,(去掉启用内存保护帮助减少联机攻击)

    4.C:\Program Files\Common Files\Mercury Interactive备份此目录下的DOMSINFO文件夹所有的内容。

     

    ----------------------------------------------------------------

    td中测试用例优先级设置

    TestDirector--customize,进入工程管理后台;
    customize project entities--test--user fields--new field,添加priority区域即可

    在TD的测试用例中显示测试用例编号的方法

    就像Defect里每个bug都有一个ID一样,其实TD为每个测试用例(Test Case)也赋予了一个编号,默认是不显示的,如果希望在界面上让它显示出来,可以这么做:

    步骤1

    创建一个Object,类型为Number,命名之(随意,如TEST_ID)

    步骤2

    进入Customize->Set Up Workflow->scrīpt Editor,找到Test Plan module scrīpt->TestPlan_Test_moveto

    步骤3

    在TestPlan_Test_moveto这个过程内插入如下代码:

    if TestPlan_Fields.Field("Test_ID").Value <> Test_Fields.Field

    ("TS_TEST_ID").Value then

    Test_Fields.Field("Test_ID").Value = Test_Fields.Field("TS_TEST_ID").Value

    end if

    或者只插入下面这句:

    Test_Fields.Field("TS_USER_01").Value = Test_Fields.Field("TS_TEST_ID").Value

    步骤4

    保存,退出,5min之后打开测试用例查看其编号

    --------------------------------------------------------
    TD创建项目提示“SQL Server 不存在或者拒绝访问。|未制定错误。” 的简单处理办法。


    前提:   windows2003SP2 + SQL Server 2005 + TD8.0

    简单解决方法:

    1.确认SQL Server配置管理器中的网络协议“TCP/IP”已启用。

    2.修改Site Administrator  --> DB Servers 中的连接数据库的字

  • 注册测试

    2011-03-07 10:48:41

    用户名密码的测试方法

    (转文)

    别小看了这个用户名密码这么简单的输入框。可测试的内容还是很多的,并且引发的问题也有很多种类。下面就说一说他的测试方法。

    一、用户注册

    只从用户名和密码角度写了几个要考虑的测试点,如果需求中明确规定了安全问题,Email,出生日期,地址,性别等等一系列的格式和字符要求,那就都要写用例测了~

    以等价类划分和边界值法来分析

    1.填写符合要求的数据注册: 用户名字和密码都为最大长度(边界值分析,取上点)

    2.填写符合要求的数据注册 :用户名字和密码都为最小长度(边界值分析,取上点)

    3.填写符合要求的数据注册:用户名字和密码都是非最大和最小长度的数据(边界值分析,取内点)

    4.必填项分别为空注册

    5.用户名长度大于要求注册1位(边界值分析,取离点)

    6.用户名长度小于要求注册1位(边界值分析,取离点)

    7.密码长度大于要求注册1位(边界值分析,取离点)

    8.密码长度小于要求注册1位(边界值分析,取离点)

    9.用户名是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了,如含有空格,#等,看需求是否允许吧~

    10.密码是不符合要求的字符注册(这个可以划分几个无效的等价类,一般写一两个就行了)

    11.两次输入密码不一致(如果注册时候要输入两次密码,那么这个是必须的)

    12.重新注册存在的用户

    13.改变存在的用户的用户名和密码的大小写,来注册。(有的需求是区分大小写,有的不区分)

    14.看是否支持tapenter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号显示

    备注:边界值的上点、内点和离点大家应该都知道吧,呵呵,这里我就不细说了~~

    二、修改密码

    当然具体情况具体分析哈~不能一概而论~

    实际测试中可能只用到其中几条而已,比如银行卡密码的修改,就不用考虑英文和非法字符,更不用考虑那些TAP之类的快捷键。而有的需要根据需求具体分析了,比如连续出错多少次出现的提示,和一些软件修改密码要求一定时间内有一定的修改次数限制等等。

    1.不输入旧密码,直接改密码

    2.输入错误旧密码

    3.不输入确认新密码

    4.不输入新密码

    5.新密码和确认新密码不一致

    6.新密码中有空格

    7.新密码为空

    8.新密码为符合要求的最多字符

    9.新密码为符合要求的最少字符

    10.新密码为符合要求的非最多和最少字符

    11.新密码为最多字符-1

    12.新密码为最少字符+1

    13.新密码为最多字符+1

    14.新密码为最少字符-1

    15.新密码为非允许字符(如有的密码要求必须是英文和数字组成,那么要试汉字和符号等)

    16.看是否支持tapenter键等;密码是否可以复制粘贴;密码是否以* 之类的加秘符号

    17.看密码是否区分大小写,新密码中英文小写,确认密码中英文大写

    18.新密码与旧密码一样能否修改成功

    另外一些其他的想法如下:

    1 要测试所有规约中约定可以输入的特殊字符,字母,和数字,要求都可以正常输入、显示正常和添加成功

    2 关注规约中的各种限制,比如长度,大否支持大小写。

    3 考虑各种特殊情况,比如添加同名用户,系统是否正确校验给出提示信息,管理员帐户是否可以删除,因为有些系统管理员拥有最大权限,一旦删除管理员帐户,就不能在前台添加,这给最终用户会带来很多麻烦。比较特殊的是,当用户名中包括了特殊字符,那么对这类用户名的添加同名,修改,删除,系统是否能够正确实现,我就遇到了一个系统,添加同名用户时,如果以前的用户名没有特殊字符,系统可以给出提示信息,如果以前的用户名包含特殊字符,就不校验在插入数据库的时候报错。后来查到原因了,原来是在java中拼SQL语句的时候,因为有"_",所以就调用了一个方法在“_”,前面加了一个转义字符,后来发现不该调用这个方法。所以去掉就好了。所以对待输入框中的特殊字符要多关注。


    4 数值上的长度 之类的,包括出错信息是否合理
    5 特殊字符:比如。 / ' " \ </html> 这些是否会造成系统崩溃

    6 注入式bug:比如密码输入个or 1=1

    7 登录后是否会用明文传递参数

    8 访问控制(不知道这个算不算):登录后保存里面的链接,关了浏览器直接复制链接看能不能访问。

     

  • 收集的测试网站

    2011-03-07 10:47:34

    -

    注:未测试过

    ------------------------------------------------------
    国外

    http://bdonline.sqe.com/ 一个关于网站测试方面的网页,对这方面感兴趣的人可以参考
    http://citeseer.nj.nec.com/ 一个丰富的电子书库,内容很多,而且提供著作的相关文档参考和下载,是作者非常推荐的一个资料参考网站
    http://groups.yahoo.com/group/LoadRunner 性能测试工具LoadRunner的一个论坛
    http://groups.yahoo.com/grorp/testing-paperannou-nce/messages 提供网站上当前发布的软件测试资料列表
    http://satc.gsfc.nasa.gov/homepage.html 软件保证中心是美国国家航天局(NASA)投资设立的一个软件可靠性和安全性研究中心,研究包括了度量、工具、风险等各个方面
    http://seg.iit.nrc.ca/English/index.html 加拿大的一个研究软件工程质量方面的组织,可以提供研究论文的下载
    http://sepo.nosc.mil 内容来自美国SAN DIEGO的软件工程机构(Sofrware Engineering Process Office)主页,包括软件工程知识方面的资料
    http://www.asq.org/ 是世界上最大的一个质量团体组织之一,有着比较丰富的论文资源,不过是收费的
    http://www.automated-testing.com/ 一个自动化软件测试和自然语言处理研究页面,属于个人网页,上面有些资源可供下载
    http://www.benchmarkresources.com/ 提供有关标杆方面的资料,也有一些其它软件测试方面的资料
    http://www.betasoft.com/ 包含一些流行测试工具的介绍、下载和讨论,还提供测试方面的资料
    http://www.brunel.ac.uk/~csstmmh2/vast/home.html VASTT研究组织,主要从事通过切片技术、测试技术和转换技术来验证和分析系统,对这方面技术感兴趣的人是可以在这里参考一些研究的项目及相关的一些主题信息
    http://www.cc.gatech.edu/aristotle/ Aristole研究组织,研究软件系统分析、测试和维护等方面的技术,在测试方面的研究包括了回归测试、测试套最小化、面向对象软件测试等内容,该网站有丰富的论文资源可供下载
    http://www.computer.org/ IEEE是世界上最悠久,也是在最大的计算机社会团体,它的电子图书馆拥有众多计算机方面的论文资料,是研究计算机方面的一个重要资源参考来源
    http://www.cs.colostate.edu/testing/ 可靠性研究网站,有一些可靠性方面的论文资料
    http://www.cs.york.ac.uk/testsig/ 约克大学的测试专业兴趣研究组网页,有比较丰富的资料下载,内容涵盖了测试的多个方面,包括测试自动化、测试数据生成、面向对象软件测试、验证确认过程等
    http://www.csr.ncl.ac.uk/index.html 学校里面的一个软件可靠性研究中心,提供有关软件可靠性研究方面的一些信息和资料,对这方面感兴趣的人可以参考
    http://www.dcs.shef.ac.uk/research/groups/vt/ 学校里的一个验证和测试研究机构,有一些相关项目和论文可供参考
    http://www.esi.es/en/main/ ESI(欧洲软件组织),提供包括CMM评估方面的各种服务
    http://www.europeindia.org/cd02/index.htm 一个可靠性研究网站,有可靠性方面的一些资料提供参考
    http://www.fortest.org.uk/ 一个测试研究网站,研究包括了静态测试技术(如模型检查、理论证明)和动态测试(如测试自动化、特定缺陷的检查、测试有效性分析等)
    http://www.grove.co.uk/ 一个有关软件测试和咨询机构的网站,有一些测试方面的课程和资料供下载
    http://www.hq.nasa.gov/office/codeq/relpract/prcls-23.htm NASA可靠性设计实践资料
    http://www.io.com/~wazmo/ Bret Pettichord的主页,他的一个热点测试页面连接非常有价值,从中可以获得相当大的测试资料,很有价值
    http://www.iso.ch/iso/en/ISOOnline.frontpage 国际标准化组织,提供包括ISO标准系统方面的各类参考资料
    http://www.isse.gmu.edu/faculty/ofut/classes/ 821-ootest/papers.html 提供面向对象和基于构架的测试方面著作下载,对这方面感兴趣的读者可以参考该网站,肯定有价值
    http://www.ivv.nasa.gov/ NASA设立的独立验证和确认机构,该机构提出了软件开发的全面验证和确认,在此可以获得这方面的研究资料
    http://www.kaner.com/ 著名的测试专家Cem Kanner的主页,里面有许多关于测试的专题文章,相信对大家都有用。Cem Kanner关于测试的最著名的书要算Testing Software,这本书已成为一个测试人员的标准参考书
    http://www.library.cmu.edu/Re-search/Engineer- ingAndSciences/CS+ECE/index.html 卡耐基梅陇大学网上图书馆,在这里你可以获得有关计算机方面各类论文资料,内容极其庞大,是研究软件测试不可获取的资料来源之一
    http://www.loadtester.com/ 一个性能测试方面的网站,提供有关性能测试、性能监控等方面的资源,包括论文、论坛以及一些相关链接
    http://www.mareinig.ch/mt/index.html 关于软件工程和应用开发领域的各种免费的实践知识、时事信息和资料文件下载,包括了测试方面的内容
    http://www.mtsu.ceu/-storm/ 软件测试在线资源,包括提供目前有哪些人在研究测试,测试工具列表连接,测试会议,测试新闻和讨论,软件测试文学(包括各种测试杂志,测试报告),各种测试研究组织等内容
    http://www.psqtcomference.com/ 实用软件质量技术和实用软件测试技术国际学术会议宣传网站,每年都会举行两次
    http://www.qacity.com/front.htm 测试工程师资源网站,包含各种测试技术及相关资料下载
    http://www.qaforums.com/ 关于软件质量保证方面的一个论坛,需要注册
    http://www.qaiusa.com/ QAI是一个提供质量保证方面咨询的国际著名机构,提供各种质量和测试方面证书认证
    http://www.qualitytree.com/ 一个测试咨询提供商,有一些测试可供下载,有几篇关于缺陷管理方面的文章值得参考
    http://www.rational.com/ IBM Rational的官方网站,可以在这里寻找测试方面的工具信息。IBM Rational提供测试方面一系列的工具,比较全面
    http://rexblackconsulting.com/Pages/publicat-ions.htm
    Rex Black的个人主页,有一些测试和测试管理方面的资料可供下载
    http://www.riceconsulting.com/ 一个测试咨询提供商,有一些测试资料可供下载,但不多
    http://www.satisfice.com/ 包含James Bach关于软件测试和过程方面的很多论文,尤其在启发式测试策略方面值得参考
    http://www.satisfice.com/seminars.shtml 一个黑盒软件测试方面的研讨会,主要由测试专家Cem Kanar和James Bach组织,有一些值得下载的资料
    http://www.sdmagazine.com/ 软件开发杂志,经常会有一些关于测试方面好的论文资料,同时还包括了项目和过程改进方面的课题,并且定期会有一些关于质量和测试方面的问题讨论
    http://www.sei.cmu.edu/ 著名的软件工程组织,承担美国国防部众多软件工程研究项目,在这里你可以获俄各类关于工程质量和测试方面的资料。该网站提供强有力的搜索功能,可以快速检索到你想要的论文资料,并且可以免费下载
    http://www.soft.com/Institute/HotList/ 提供了网上软件质量热点连接,包括:专业团体组织连接、教育机构连接、商业咨询公司连接、质量相关技术会议连接、各类测试技术专题连接等
    http://www.soft.com/News/QTN-Online/ 质量技术时事,提供有关测试质量方面的一些时事介绍信息,对于关心测试和质量发展的人士来说是很有价值的
    http://www.softwaredioxide.com/ 包括软件工程(CMM,CMMI,项目管理)软件测试等方面的资源
    http://www.softwareqatest.com/ 软件质量/测试资源中心。该中心提供了常见的有关测试方面的FAQ资料,各质量/测试网站介绍,各质量/测试工具介绍,各质量/策划书籍介绍以及与测试相关的工作网站介绍
    http://www.softwaretestinginstitute.com 一个软件测试机构,提供软件质量/测试方面的调查分析,测试计划模板,测试WWW的技术,如何获得测试证书的指导,测试方面书籍介绍,并且提供了一个测试论坛
    http://www.sqatester.com/index.htm 一个包含各种测试和质量保证方面的技术网站,提供咨询和培训服务,并有一些测试人员社团组织,特色内容是缺陷处理方面的技术
    http://www.sqe.com/ 一个软件质量工程服务性网站,组织软件测试自动化、STAR-EASE、STARWEST等方面的测试学术会议,并提供一些相关信息资料和课程服务
    http://www.stickyminds.com/ 提供关于软件测试和质量保证方面的当前发展信息资料,论文等资源
    http://www.stqemagazine.com/ 软件策划和质量工程杂志,经常有一些好的论文供下载,不过数量较少,更多地需要通过订购获得,内容还是很有价值的
    http://www.tantara.ab.ca/ 软件质量方面的一个咨询网站,有过程改进方面的一些资料提供
    http://www.tcse.org/ IEEE的一个软件工程技术委员会,提供技术论文下载,并有一个功能强大的分类下载搜索功能,可以搜索到测试类型、测试管理、 测试分析等各方面资料
    http://www.testing.com/ 测试技术专家Brain Marick的主页,包含了Marick 研究的一些资料和论文,该网页提供了测试模式方面的资料,值得研究。总之,如果对测试实践感兴趣,该网站一定不能错过
    http://www.testingcenter.com/ 有一些测试方面的课程体系,有一些价值
    http://www.testingconferences.com/asiastar/home 著名的AsiaStar测试国际学术会议官方网站,感兴趣的人一定不能错过
    http://www.testingstuff.com/ Kerry Zallar的个人主页,提供一些有关培训、工具、会议、论文方面的参考信息
    http://www-sqi.cit.gu.edu.au/ 软件质量机构,有一些技术资料可以供下载,包括软件产品质量模型、再工程、软件质量改进等

    ------------------------------
    国内
    51Testing软件测试网  http://www.51testing.com
    CSDN——软件测试频道  testing.csdn.net
    希赛网——软件测试频道  testing.csai.cn
    中国软件测试联盟  http://www.iceshi.com/
    一起测试网 http://www.17testing.com
    北大测试  http://www.btesting.com
    中国软件测试基地 http://www.cntesting.com
    中国软件评测中心 http://www.cstc.org.cn
    中国软件质量网  http://www.rjzl.gov.cn

  • ABy用法

    2011-03-07 10:33:08

    常用命令
    -n 运行多少次,例如-n 10000
    -c 并发数,例如-c 100
    -p post传参文件,例如-p post.txt(文件格式为key1=value&key2=value)
    -T content-type,例如-T 'application/x-www-form-urlencoded' (如果使用post传参一定要设置该值)
    以POST方式对一个页面进行测试
    ./ab -n 10000 -c 200 -p post.txt -T 'application/x-www-form-urlencoded' http://IP/log
  • 安全测试概念

    2011-03-07 10:31:15

    (转文)

    一、什么是安全性测试

    安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。

    注意:安全性测试并不最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。

    以下是我读<<软件评测试教程>>中的Web安全性测试章节内容,并进行修改的笔记,前面看了好多朋友写的,不过不是很全,希望对大家有所帮助,建议大家还是买本<<软件评测试教程>>此书绝对物超所值^_^

    WEB
    安全性测试
    一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。
    1.        
    安全体系测试
    1)        
    部署与基础结构
    l        
    网络是否提供了安全的通信
    l        
    部署拓扑结构是否包括内部的防火墙
    l        
    部署拓扑结构中是否包括远程应用程序服务器
    l        
    基础结构安全性需求的限制是什么
    l        
    目标环境支持怎样的信任级别
    2)        
    输入验证
    l        
    如何验证输入
    A.        
    是否清楚入口点
    B.        
    是否清楚信任边界
    C.        
    是否验证Web页输入
    D.        
    是否对传递到组件或Web服务的参数进行验证
    E.        
    是否验证从数据库中检索的数据
    F.        
    是否将方法集中起来
    G.        
    是否依赖客户端的验证
    H.      
    应用程序是否易受SQL注入攻击
    I.        
    应用程序是否易受XSS攻击
    l        
    如何处理输入
    3)        
    身份验证
    l        
    是否区分公共访问和受限访问
    l        
    是否明确服务帐户要求
    l        
    如何验证调用者身份
    l        
    如何验证数据库的身份
    l        
    是否强制试用帐户管理措施
    4)        
    授权
    l        
    如何向最终用户授权
    l        
    如何在数据库中授权应用程序
    l        
    如何将访问限定于系统级资源
    5)        
    配置管理
    l        
    是否支持远程管理
    l        
    是否保证配置存储的安全
    l        
    是否隔离管理员特权
    6)        
    敏感数据
    l        
    是否存储机密信息
    l        
    如何存储敏感数据
    l        
    是否在网络中传递敏感数据
    l        
    是否记录敏感数据
    7)        
    会话管理
    l        
    如何交换会话标识符
    l        
    是否限制会话生存期
    l        
    如何确保会话存储状态的安全
    8)        
    加密
    l        
    为何使用特定的算法
    l        
    如何确保加密密钥的安全性
    9)        
    参数操作
    l        
    是否验证所有的输入参数
    l        
    是否在参数过程中传递敏感数据
    l        
    是否为了安全问题而使用HTTP头数据
    10)        
    异常管理
    l        
    是否使用结构化的异常处理
    l        
    是否向客户端公开了太多的信息
    11)        
    审核和日志记录
    l        
    是否明确了要审核的活动
    l        
    是否考虑如何流动原始调用这身份
    2.        
    应用及传输安全
    WEB
    应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。
    应用级的安全测试的主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下。
    l        
    注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。
    A.        
    必须测试有效和无效的用户名和密码
    B.        
    要注意是否存在大小写敏感,
    C.        
    可以尝试多少次的限制
    D.        
    是否可以不登录而直接浏览某个页面等。
    l        
    在线超时:Web应用系统是否有超时的限制,也就是说,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
    l        
    操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。
    l        
    备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。
    传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。
    l        HTTPS
    SSL测试:默认的情况下,安全HTTPSoure HTTP)通过安全套接字SSLSource Socket Layer)协议在端口443上使用普通的HTTPHTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。
    l        
    服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
    l        
    防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题。这里所涉及的只是对防火墙功能、设置进行测试,以判断本Web系统的安全需求。

    另推荐安全性测试工具:
    Watchfire AppScan
    :商业网页漏洞扫描器(此工具好像被IBM收购了,所以推荐在第一位)
    AppScan
    按照应用程序开发生命周期进行安全测试,早在开发阶段就进行单元测试和安全保证。Appscan能够扫描多种常见漏洞,例如跨网站脚本、HTTP应答切开、参数篡改、隐藏值篡改、后门/调试选项和缓冲区溢出等等。


    Acunetix Web Vulnerability Scanner
    :商业漏洞扫描器(目前用的比较多,不过这东东N占内存)
    Acunetix WVS
    自动检查您的网页程序漏洞,例如SQL注入、跨网站脚本和验证页面弱密码破解。Acunetix WVS有着非常友好的用户界面,还可以生成个性化的网站安全评估报告。

    另附我以前在51testing上发过Yeepay网站安全测试漏洞之跨站脚本注入
    http://bbs.51testing.com/thread-113784-1-1.html
    Sql
    注入和跨站脚本这种漏洞比较常见,另在支付宝网站注册页面也存在跨站脚本情况.

  • 整理的安全测试资料(三)

    2011-03-07 10:29:26

    -----------------------------------------------------------------------------
    安全测试网站
    http://www.51testing.com/?uid-57698-action-spacelist-type-bbs-view-myfav
    ----------------------------------------------------------------------------

    1、输入特殊字符串:null,NULL、&nbsp /javascript/<script>.</script>/<title>
    /<html>/<td>

    2,输入脚本函数:<script>alter("abc")</script>/documrnt.write("abc")、<b>helluo</b>


    安全性测试

     (1)SQL注入

      (2)XSS跨网站脚本攻击:程序或数据库没有对一些特殊字符进行过滤或处理,导致用户

      所输入的一些破坏性的脚本语句能够直接写进数据库中,浏览器会直接执行这些脚本语句,破坏网站的正常显示,或网站用户的信息被盗,构造脚本语句时,要保证脚本的完整性。

      document.write("abc")

      <script>alter("abc")</script>

      (3)URL地址后面随便输入一些符号

      (4)验证码更新问题

      以上就是对Web测试的一个总结,相信一定还存在某些的遗漏,欢迎大家指正、补充。
    -------------------------------------------------------------------------------
    转 自  http://cs.phontol.com/20081017_330516.html

    1. 不登录系统,直接输入登录后的页面的url是否可以访问
    2. 不登录系统,直接输入下载文件的url是否可以下载,如输入http://url/download?name=file是否可以下载文件file
    3. 退出登录后按后退按钮能否访问之前的页面
    4. ID/密码验证方式中能否使用简单密码。如密码标准为6位以上,字母和数字混合,不能包含ID,连续的字母或数字不能超过n位
    5. 重要信息(如密码,身份证号码,信用卡号等)在输入或查询时是否用明文显示;在浏览器地址栏里输入命令javascrīpt:alert(doucument.cookie)时是否有重要信息;在html源码中能否看到重要信息
    6. 手动更改URL中的参数值能否访问没有权限访问的页面。如普通用户对应的url中的参数为l=e,高级用户对应的url中的参数为l=s,以普通用户的身份登录系统后将url中的参数e改为s来访问本没有权限访问的页面
    7. url里不可修改的参数是否可以被修改
    8. 上传与服务器端语言(jsp、asp、php)一样扩展名的文件或exe等可执行文件后,确认在服务器端是否可直接运行
    9. 注册用户时是否可以以'--,' or 1=1 --等做为用户名
    10. 传送给服务器的参数(如查询关键字、url中的参数等)中包含特殊字符(','and 1=1 --,' and 1=0 --,'or 1=0 --)时是否可以正常处理
    11. 执行新增操作时,在所有的输入框中输入脚本标签(&lt;scrīpt&gt;alert(&quot;&quot;)&lt;/scrīpt&gt;)后能否保存
    12. 在url中输入下面的地址是否可以下载:http://url/download.jsp?file=C:\windows\system32\drivers\etc\hosts,http://url/download.jsp?file=/etc/passwd
    13. 是否对session的有效期进行处理
    14. 错误信息中是否含有sql语句、sql错误信息以及web服务器的绝对路径等
    15. ID/密码验证方式中,同一个账号在不同的机器上不能同时登录
    16. ID/密码验证方式中,连续数次输入错误密码后该账户是否被锁定
    17. 新增或修改重要信息(密码、身份证号码、信用卡号等)时是否有自动完成功能(在form标签中使用autocomplete=off来关闭自动完成功能)


    ---------------------------------------------------------
    通行账户:注册不区分大小写
    登录会区分大小写

491/3123>
Open Toolbar