记录阿里巴巴QA架构组成长点滴。2008年关键词为效率,技术,影响力!QA/测试架构师定义:开发和设计测试框架测试库;纵横全局的考虑产品的功能,设计复杂的测试系统;负责研发某一项特定的测试技术;为公司考虑如何提高测试效率。领导公司测试技术的发展和测试策略上的方向,关注整个公司的测试部门的问题,前瞻性的考虑未来的版本的测试策略和技术。测试架构师计划/设计测试平台,关注着产品的测试过程,提供咨询服务,影响到公司内的测试机构测试社区,以及开发机构等,对产品各个方面施加深远而正确的影响,最终提高整体软件质量。

发布新日志

  • 续前:利用winapp设置系统环境变量

    2008-03-24 10:39:58

    前面有同仁介绍了获取系统环境变量的方法,同样我们也可以里利用winapp设置系统环境变量,方法与获取环境变量类似

    '输入参数: EnvironmentType 变量类型(user:用户变量、system:系统变量)
    '  EnvironmentName 变量名称
    '  EnvironmentValue 变量值

    Function winSetEnvironment(EnvironmentType,EnvironmentName,EnvironmentValue)
     Dim oWinApp,oWinEnv
     Set ōWinApp=createobject("Wscrīpt.Shell")
     Set ōWinEnv=oWinApp.Environment(EnvironmentType)
     oWinEnv.Item(EnvironmentName) = EnvironmentValue
     winSetEnvironment = 1
     Set ōWinApp = nothing
     Set ōWinEnv = nothing
    End Function

  • 利用qtpapp自动加载QTP lib文件

    2008-03-24 10:28:32

    当自动化脚本运行需要依赖框架方法的vbs文件越来越多的情况下,每次手工添加lib文件将是一件繁琐的时间,我们可以利用qtpapp提供的api实现自动加载,参考代码如下:

     '创建qtp对象
     Set qtApp = CreateObject("QuickTest.Application")
     
     qtApp.Launch
     
     qtApp.Visible = False

    '打开qtp文件
     On Error Resume Next
     qtApp.Open "d:\test", False, False
     If err.number <> 0 Then
      MsgBox "打开qtp文件失败!"
      qtApp.Quit
      Set qtApp = nothing
      Exit Sub
     End If

    '加载vbs文件

     Set qtLibraries = qtApp.Test.Settings.Resources.Libraries

     qtLibraries.Add "d:\aa.vbs" 

    '保存QTP文件并退出
     qtApp.Test.Save 
     
     qtApp.Quit

     Set qtLibraries = Nothing
     Set qtApp = Nothing

  • 技术管理初体验

    2008-03-22 10:57:21

    在技术管理方面,偶是绝对的新手。

    不过就像很多事情一样 ,都有人无师自通的 J ,可惜偶不算这种。

    以下都是偶的一些浅显见解。

     

    技术管理和纯技术工作还是有很大的不同

    1)      技术管理需要经常REVIEW 成员的成果,REVIEW的工作量取决于REVIEW的粒度,太细会把握不住重点且工作量大,太粗无法看出门道。由于要REVIEW 组员成果,需要对组员的工作领域有比较深刻的把握,故技术管理需要杂家 纯技术则一门心思把自己的事情做好,并偶尔帮忙请教的同事解决问题,在自己的领域专注得比较深

    2)      技术管理的重点在于把握人,要鼓励组员积极发挥主观能动性,及时发现组员的思想情绪变化,也需要授权给与组员充分的信任但还是需要REVIEW成果;纯技术则重点在于管事,把颗粒很细的事情解决掉,当然也有培养接口人的任务。

    3)      技术管理的绩效考核从团队业绩出发,一华为跳槽过来的哥们说的: 团队PKI 比个人PKI 更难出彩; 纯技术工作更多把自己的活做好,并影响周围人积极向前

    4)      技术管理的工作经常被打断,思路也随之被打断,故在时间管理上提出更高要求;纯技术则干扰少一些 ,技术管理者需要帮纯技术的同事创造一个尽少被干扰的环境

    5)      在技能要求方面,作为一个上通下达的角色,技术管理在领悟能力、沟通、协调等 软技能方面提出很高的要求,另外在某些时刻需要根据直觉决断 ;纯技术则需要在技术细节方面把握很到位

     

    技术管理方面碰到的一些容易困惑的问题

    1)      技术管理碰到最大的问题是资源短缺,如何平衡各方的需求成为一个最棘手的问题

    2)      绩效考核,技术工作很难单纯用数字量化,如何甄别组员的优秀,需要有伯乐的眼光

    3)      一直保持良好的团队激情、氛围。基层的技术管理者手上有的 赏的权利很小,手段多为肯定、赞扬组员的工作,呵呵,有时候这些手段是不够 J

    4)      技术管理如何协调团队内外的关系。外部期望值一般都很高 ,作为技术管理者在满足外部需求时,需要权衡团队的承担能力

    5)      怎样的领导风格最适合团队? 太严格,容易压抑;太宽松,容易散漫;太武断,容易听不见他人意见,太犹豫容易错失时机

    6)      技术管理,自身还需要承担很多技术工作,比如确定技术研究方向、解决技术问题,技术和管理分配的时间比率为多少最合适?

    7)      …..

    说到底,面对诸多问题,有一个度量把握的问题,这个很需要艺术。 也是偶的努力方向。

  • 扩展LoadRunner功能的一种实现思路

    2008-03-18 23:50:07

     

       附件是以前在电信临闪之前想到的一些IDEA,由于时间关系,没有来得及实现。呵呵,供各位碰到同类问题的同学参考。

       具体的实现思路可以和我再交流.

     

       ppt 在BLOG无法上传,请移步

    http://bbs.51testing.com/viewthread.php?tid=108978&pid=916217&page=1&extra=page%3D1

  • 一个root密码变动脚本

    2008-03-18 14:24:44

    最近管理服务器,经常遇到临时索要root密码的人。但原始的root密码又不能经常变动,
    于是搞出一个temp密码,并赋予一定的使用期限。脚本里面主要看点是:--stdin,这个
    参数还是很有用的,可有效的避免人机交互。
    #!/bin/sh
    #Usage: ./doPasswdRootRevise -t time
    passwd_term=$2
    passwd_period=$((passwd_term*3600))
    passwd_tmp="b2bqatmp"
    passwd_root="b2bqa2007"
    if [ $# -eq 0 ];then
            echo -e "usage: ./doPasswdRootRevise -t time  \n\r\t time: 
    取值必须是整数\n\r\t Example: ./passwdRoot -t 
    8 \t 表示临时密码有效期是8小时"
    else
    echo $passwd_tmp | passwd --stdin root
    echo -e "\v Temp-Password expire in $passwd_term hours...\v"
    sleep $passwd_period
    echo $passwd_root | passwd --stdin root

    fi
  • Oracle NCA协议的检查点函数

    2008-03-18 13:59:56

    int nca_obj_status ( LPCSTR name );
    LR录制NCA协议和HTTP协议所用的函数还是有所不同的,在检查点函数方面,nca_obj_status和web_reg_find有类似功能。首先对象识别,返回对象的状态后,然后进行判断

    example:

    int status;
    nca_set_window("tgbrg4100m000 : Maintain Project Models [550]",100);
    nca_obj_wait_info("Models", "focused", "1",100);
    status= nca_obj_status("F1_gwindow_multiocc");
    if (status == E_OK)
           nca_menu_select_item("Edit;Delete Ctrl+Delete");
    nca_set_window("ttstpq0102 : Maintain Project Models",100);
  • 自动化测试议题

    2008-03-18 12:57:58

    1)如何有效统计自动化测试成本效益

            A 缺乏比较精细的历史数据支持

            B 外部因素在变化,比如手工测试人员技能变化、流程变化...

            C 自动化运行次数未知

     ....  

     2) 如何评价自动化测试框架优劣

           通常,我们会用扩展性、稳定性、可测性等等指标衡量一个应用系统。但自动化框架是否也有自己的一些特有的评价指标呢?

    3) 如何和各测试组协作,让自动化测试项目在有测试项目压力以及技能不整的情况下,高效运作

             参与业务需求整理和脚本开发的同学都肩负多个任务,当自动化开发遇到项目测试时,自动化时间比较难得到保证?

    另外,参与自动化测试项目的同学对自动化的认识以及技能也不一样的。

    综合各种情况,我们有更好的措施确保项目良好运作? 

    4) 如何在基础的数据积累平台还没有搭建的情况下,获取更多有意义的数据

       

          如何降低自动化测试各个环节数据的误差程度?

     

    5)如何为QTP脚本提速?

          整个网站的自动化脚本期望30分钟内完成, 这个愿望是否有足够的判断依据?兄弟单位的情况如何呢? 除了 增加硬件以及性能外,对QTP或者VBscrīpt 脚本进行profile以及提速呢?

     6 ) 自动化测试当中碰到的一些技术问题

         如excel sheet名称如何突破32个byte长度的约束?

     

  • QTP中对识别为WebElement的对象进行输入操作的一种解决办法

    2008-03-17 13:39:14

        在设计自动化框架的过程,发现了一些被QTP识别为WebElement的对象,需要对其进行输入操作;而WebElement只有click方法,是没有输入的方法的。
        考虑了实际中确实需要具有这种输入的支持(比如利用js生成的输入框,比较常见的是HTML编辑器输入框),就着手去解决。找到了一种解决办法:利用WshShell对象的SendKey方法来实现。在网上找了个html代码编辑器的实例,实现具体代码如下:

    Option Explicit

    Dim oWin32

    Set oWin32 = CreateObject("wscrīpt.shell")

    oWin32.Run("http://www.ewebeditor.net/demo/")

    '由于html编辑器输入框没有找到稳定的属性用于识别,QTP录制时也没有录下对其操作,所以采用先将焦点移到其上一个对象,再按tab移动焦点到html编辑器上
    Browser("title:=.*eWebEditor").page("title:=.*eWebEditor").WebList("name:=select","index:=0").FireEvent "onfocus"
    '对IE窗口模拟键盘输入操作
     With oWin32
      .sendkeys "{TAB}"
      wait 2
      .sendkeys "ksadjflonfocusksjdlemowstitlitoWebLeEvenfocusonfocusonfocusonfocusonfocusonfocusonfocusdsjflkjdsklfjlkdsjf"
     End With

        以上是我想到的一种实现方式,也是目前正在使用的方式。但只是一个不得已的解决方法——因为这种方式是很脆弱的,焦点变动,甚至一个Windows消息提示都可能使脚本失败。

        欢迎交流更好的解决思路!

  • 使用WshShell对象取获取Windows环境变量

    2008-03-14 09:40:08

     

        最近在自动化框架应用时,由于在QTP中引入了大量vbs作为库文件,以及其它一些配置文件,这些文件的访问路径需要统一一个根路径以便于访问;而根路径使用绝对地址,在不同机器上可能都不相同,目前我们采用了QTP的环境变量来配置这个路径;虽然可以通过QTP的API很方便的加入这个值,但由于设置是跟着脚本走的,导致不同机器上运行脚本总要重新配置,颇有些不便。
        今天看了几行java代码,忽然想起jdk配置环境变量的方式,于是想到可以用Windows系统环境变量来解决以上问题。在每台Windows机器上配置一个用户环境变量“TARootPath”,供QTP使用,具体的绝对路径只要在TARootPath的值中配置即可。这样一来,只要每台机器配好该值,脚本可以迁移到任何机器上均无需修改即可运行。又或者可以使用Windows固定路径的环境变量值,那就连配置也不需要了。
        查了些文档,实现了以下代码:

    Function getWinEnvironment(EnvironmentName)
     Dim oWshShell
     Dim oWshEnvironment
     
     Set ōWshShell = CreateObject("Wscrīpt.Shell")
     Set ōWshEnvironment = oWshShell.Environment("user")
     getWinEnvironment = oWshEnvironment(EnvironmentName)
    End Function

        想获取环境变量TARootPath的值可以:

    Dim sTARootPath
    sTARootPath = getWinEnvironment("TARootPath")

        WshShell对象的方法和属性是Windows脚本中的重要组成部分,还有很多技巧可以应用到自动化测试中。

  • google测试初探

    2008-03-11 12:43:41

    偶今晚来京和一 google哥们(前同事,哈哈,沾光了) 聊聊google情况。

    1)google 中国人数 6/7 百人
    2) 测试人数很少 ,测试和开发都统称工程师。地位很高
    3) 搜索引擎测试不在中国
    4) 黑盒,白盒 ,安全,性能测试,接口测试都做。
       测试工具多为自主研发。类似LOADRUNNER\QTP 等看不到的
       呵呵 这点非常强 。

      我们的奋斗目标啊 。

      而且测试人员很少的情况下,这点看来生产率很高啊

    5)工程师多为刚走出校门的新人,但经过GOOGLE的 7轮面试折磨,能力相比很强。
      偶很羡慕啊。呵呵
    6) 1年有2-3次回美国总部培训机会

    7) 具体的技术级别有: 工程师,leader,高级工程师,资深工程师,杰出工程师 

      高级工程师就需要美国总部面试.要求很高

      据说国内仅仅有几个杰出工程师 

    8) 服务器平台

       OS 在linux上改造.

       用的平台\语言很多,以JAVA/C++为主 .

     

       

  • 上传svn前,脚本的清理工作

    2008-02-27 16:36:28

    保存为refine.bat, 执行参数 refine.bat yourqtprootdir目录

    脚本实现如下:


    @echo off

    rem -------------------------------------------------------------------------
    rem Delete the QTP TestResult  ...
    rem -------------------------------------------------------------------------

    set DIRNAME="C:\Program Files\Mercury Interactive\QuickTest Professional\bin\"

    if "%1" =="" goto err
    if not exist "C:\Program Files\Mercury Interactive\QuickTest Professional\bin\" goto err
    if not exist "%1" goto err

    goto ok

    :err
    echo --------
    echo NOTE: Sorry, pls you specify the correct directory in advance
    echo --------
    goto eof


    :ok
    if exist "C:\Program Files\Mercury Interactive\QuickTest Professional\bin\" set PATH=%DIRNAME%;%PATH%
    echo --------
    echo NOTE: Deleting now..
    echo --------


    TestResultsDeletionTool.exe -Test "%1" -Recursive -Silent


    goto eof

    :eof

    @echo .
    @echo NOTE. Well Done...
    @echo .

  • 结合excel驱动与数据池,来做场景调度

    2008-02-27 16:27:07

    1,   对于脚本实现的人:抽象出复杂业务, 开发出高复用的原子action。在脚本实现时可能会碰到因操作用户权限,准备数据的不同, 或操作步骤页面对象     

                                           不完全一致,但却归为一个结点action时, 脚本内部需要根据开关值,if 条件判断, select case去选择合适步骤脚本执行。

     

          举例:sub_account 场景中,结点7:新增子账号,有三种类型数据: 业务经理, 业务员,制作员

          可以在数据池中初始两个变量:sMemberType1,  sMemberType2

           sMemberType1 = 0   sMemberType2 = 0 为业务经理

           sMemberType1 = 0   sMemberType2 = 1 为业务员

           sMemberType1 = 1   sMemberType2 = 0 为制作员

           sMemberType1 = 1   sMemberType2 = 1 为未定义

     

           在脚本开发时可以写成

     

            If sMemberType1 = 0  and sMemberType2 = 0 then

             {do step1.. N}

            Else if  sMemberType1 = 0  and sMemberType2 =  then

             {do stepN+1.. M}

             …

            End if

         注:因为action之间执行是动态调度的,不允许使用action输入、与输出参数。

    建议结合数据池,在脚本内部进行分支判断(如上例)

     

    2,   对于测试执行的人:在需求场景中, 需求提出人按照结点从1N递增为action定义序号。 测试执行人按递增ID来组织

                                              Action结点,如:1,3,4,7,12. excel驱动里进行组织调度测试执行的人按照场景流程与数据池,来驱动测试脚本执行。

                                              调度时做不到非递增顺序性调度, 如:1, 3, 7, 4, 12.

  • 用QTP获得HTML的TAG属性值并验证

    2008-02-27 11:14:50

     

    周一在讨论国际站自动化需求时,木兰问到我如何获得某tag属性值,

    这里我们使用DOM(Document Object Model )编程技术来完成这一功能的检查。下面举个例子来说明一下:    在用户注册页面中,用户名、密码和确认密码三项的文字应为红色显示,下面的代码验证了“密码”为红色。

    Set Elements = Browser("随时随地签单").Object.Document.all.tags("TD")
    For each Element in Elements
      If Element.InnerText=“Password:" Then
        strhtml=Element.Innerhtml
        n=instr(strhtml,"color=read")
        If n<>0 Then
          Reporter.ReportEvent 0, Element.InnerText, "Text color is red!"
        End If
      End If
    Next

        其中Element.Innerhtml的值为<FONT face="Arial, Helvetica, sans-serif" color=red size=2><B>Password:</B></FONT>, 可以看见color=red就是定义了文字的颜色为红色,所以我们在之后的代码中只要验证Element.Innerhtml中存不存在color=red就可以了。

        不是所有的html代码都是如上编写的,有的时候会把style单独存放在一个css文件中,然后在网页中调用,如<FONT class=redcode>Password:</FONT>,所以我们要根据实际取到的Element.Innerhtml值来编写后面的程序,这里就要验证Element.Innerhtml中存不存在class=redcode,即代码第五行改为 n=instr(strhtml,"class=redcode")。

        所以大家要根据代码的实际情况来编程验证,这里只提供了一种验证的方法。

        我也找到另外一种,紧供参考:

    How to know color of an object
    ' Example:
    Dim color
    'Grey. Use "#000000" for black
    color = "#999"
    'Get the DOM object for the text
    Set TxtObj = Browser("myBrowser").Page("myPage").WebElement("myWebElement").Object
    retVal = FontColorCheckPoint ( TxtObj, color )

    Function FontColorCheckPoint ( obj, vExpColour )
    Dim vActualcolor, sReportStepName, sErrMsg

    ' get object's color
    vActualcolor = obj.currentStyle.color
    sReportStepName = "Custom Checkpoint ""Font Color"""
    sMsg = "The expected color " & vExpColour & " was found"
    'sErrMsg = "The expected color " & vExpColour & " was NOT found. Found " & vActualcolor & " instead."
    sErrMsg = "The expected color " & vExpColour & " for the object " & Chr(34) & obj.innertext & Chr(34) & " was NOT found. Found " & vActualcolor & " instead."
    If vActualcolor <> vExpColour Then
    Reporter.ReportEvent 1, sReportStepName, sErrMsg
    FontColorCheckPoint = False
    Else
    Reporter.ReportEvent 0, sReportStepName, sMsg
    FontColorCheckPoint = True
    End If

     

  • 搜索引擎测试的难点

    2008-02-26 23:56:08

    衡量搜索引擎系统功能质量方面有2大指标,查询率、查准率。

    性能方面从吞吐率、响应时间、系统资源消耗等多方面综合考虑。

    搜索引擎应用参与运作的角色划分:分发请求/合并查询结果的merger,以及查询服务的searcher.

     

    搜索引擎系统部署可以划分为:

    1)      1 Merger Nsearcher searcher上数据一样  (分布式单个集群多台机器)  N>=1且为整数

    2)      1个机器 同时充当Merger以及searcher (单机版)

    3)      为避免2)单点故障,几台机器同时为merger/searcher,机器的数据一样。

    4)      M 个分布式单个集群多台机器组成 1个大型的分布式多集群多机器的复杂环境

     

    实践中3)4)  2种部署模式都是存在的。

     

    大数据量、高吞吐率的都采用4),避免单点故障

    小型的数据采用3) ,节约成本。

     

    单机上搜索引擎的模块划分一般有:

    Ø        索引模块:为海量数据(数据库导出的文件数据) 建立索引文件 (依照一定数据结构格式保存为二进制文件)

    Ø        查询模块:接收http请求,查询本机硬盘上的索引文件,返回文档ID以及第二次查询时返回具体的内容

    Ø        即时更新模块:加入新的数据,可以从0开始重新建索引,也可以在原有基础上增加索引。

    Ø        分布式模块:merger/searcher 多台机器的网络通信。

    Ø        CACHE模块:这里可以做查询请求的缓存,也可以做查询结果的缓存,但缓存后者的话,将极大消耗系统内存。

    Ø        其他管理模块

    Ø        外部接口

     

     

    基于如上复杂的系统架构,尤其是4)模式,我们在测试当中也碰到相当多棘手的技术问题

    1)      海量数据是否都按预期的分词算法建立索引了呢?

    2)      机器分词的效果与手工分词相差有多大呢?

    3)      海量查询的返回结果是否多查了

    4)      海量查询的返回结果是否漏查了

    5)      海量查询的返回结果的加亮、标注如期加了?

    6)      海量查询的返回结果中相关性分数计算是否正确?

    7)      海量查询的返回结果积分计算是否正确了呢

    8)      海量查询的返回结果积分相同时,排序的先后依据唯一么?

    9)      加入即时更新模块后,每次查询结果都不同,新建的索引内容是否都反馈到查询结果里面了呢

    10)  海量数据时CACHE是否预期CACHEcache的内容?

    11)  海量数据时CACHE是否依照一定的过时算法令cache的内容失效呢?

    12)  应用程序在32LINUX 操作系统和64位的LINUX的索引、查询结果是否依然一样?

    13)  应用程序在不同的OS 上索引、查询结果是否依然一样?

     

     

    我们在实践中,针对查询结果正确性有3类方法处理以上问题

    第一类基于人工肉眼对比,极度耗费脑细胞

    1)      少量数据单机测试准确性

    2)      少量数据1个集群,搭建1merger 1searcher 测试准确性

    3)      少量数据1个集群,搭建1merger searcher 测试准确性

    4)      少量数据多个集群,搭建1merger searcher 测试准确性

     

    第二类,经过人工对比确认基本功能无大问题后,开发linux shell脚本或者loadrunner脚本比较部署方式不同但测试返回结果理当相同的。这个方法也帮我们发现了一些BUG

     

    第三类方法,

    直接测试大量数据多个集群,搭建1merger searcher 测试准确性。

    这个时候采用loadrunner施加高峰压力,抽样检查查询请求的正确性。

     

    对于分词结果、相关性的结果,有人可能建立另外按照同样的算法以及输出格式,由2个不同的开发工程师实现,再对比同样的数据分词、相关性是否相同。在项目开发时间从容的情况下,可以考虑这么做的,但现实中有几个项目时间从裕?呵呵,我没有这么好运气遇上。

     

    针对搜索引擎测试的困难,欢迎各位各抒己见。

  • 项目是否开展性能测试考虑的一些纬度

    2008-02-26 22:57:18

     


    平常性能测试时经常要权衡的角度,供大家参考

    1 项目流量:高吞吐率/高并发用户

    2  项目重要性:关键应用 or 一般应用
             关键应用如:支付 等与敏感数据打交道的   
    3  项目发展阶段:已经通过功能测试 or 已经平稳运营

    项目软件架构: 单机版,两层架构,N层架构
             一般而言多层架构且部署复杂更易于出现性能问题。
             
    项目自主研发代码的比重: 高 or  低
             采用成熟组件或者框架,且有专业人士辅助,则性能问题概率低些

    4 软件性能模型
             close /open/batch
             close:即业务吞吐率与用户量保持在一定可控的范围内,如银行营业厅
             open: 业务吞吐率与用户率变化幅度大,可能出现瞬时极限高峰,如无联网应用
             batch: DSS, 如电信经营分析系统。 用户数少,但历史数据量大,可忍受的响应时间长

             一般言,batch性能测试迫切性低
  • [系统管理] PERC6/i阵列卡如何装window xp

    2008-02-26 17:13:08

    [系统管理]PERC6/i阵列卡如何装window xp

     

    安装过很多阵列卡的window2k3linux,某天突然要紧急安装一个window xp,本以为照样可以轻松搞定,没想到过程可没那么简单。阵列卡本来就是为SERVER服务的,可是要安装一个window xp,着实费了一番劲,最后终于搞定。趁着记忆还新鲜,把过程记录下来,和大家一起分享。

    安装前的准备:

    1Window xp正版光盘 (市面上那些什么3in1D版盘是不行滴,因为安装过程要引导软盘)

    2.软盘一张、软驱一个(都什么年代了,还用这些!你还别说,就需要这些老古董,不然你还装不成。我晕~搞这些东西可是费劲啊,像POWEREDGE系列等没安装软驱的服务器,去弄一个USB外置软驱吧)

    3.支持window xp的阵列卡驱动,这个是最关键的一步。我装的是DELL

    POWEREDGE的服务器,随带光盘只提供window2k3linux的驱动,不行;800电话,说该系列服务器只支持window2k3linuxxp的不行。google之,baidu之,这么犄角旮旯的驱动基本上很难找到;怎么办?不甘心啊,后来顺着说明书上的驱动地址,大海捞针般得被我找到了。

    贴一下地址:http://ftp.us.dell.com/SAS-RAID/ R152408-PERC-5_XP32.exe

    只测试过poweredgeperc6/i阵列卡,可以适用。其他没试过,不知道。

    安装过程:

    1.window xp光盘放入光驱,从光盘引导

    2.在屏幕底部出现信息:Press F6 if you need to install a third party SCSI or RAID driver的时候,按F6 (注意动作要快,多按几下,该信息停留时间很短)

    3.按完F6后,安装程序会继续加载模块,等之。

    4.出现提示信息后按S键加载驱动程序,这个时候软盘就派上用场了。

    5.插入软盘,并按ENTER键,在设备列表里面有一项服务器所设置的控制卡的选项,按ENTER键加亮。

    6.S选择从软盘安装驱动,copy完成后,安装程序将再次返回到软盘安装界面。再次按S选择从软盘安装驱动,等它copy完成。(注意:这里需要两次copy

    7.Copy完成后,安装程序将返回到设备列表界面,确定服务器RADI卡驱动在列表里,并按ENTER继续。

    8.安装程序将搜索系统里面其他大容量的设备,如SCSIIDE控制器,这个步骤需要几分钟。

    9.然后ENTER键就可以分区、格式化、可以安装window xp了,大功告成。

1568/8<12345678
Open Toolbar