Seeing is not believing,testing is believing.

发布新日志

  • 查看Linux系统内存 CUP 使用情况

    2011-10-27 16:14:00

    查看Linux系统内存 CUP 使用情况
    2011-07-28 19:28

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。

    top - 02:53:32 up 16 days,  6:34, 17 users,  load average: 0.24, 0.21, 0.24
    Tasks: 481 total,   3 running, 474 sleeping,   0 stopped,   4 zombie
    Cpu(s): 10.3%us,  1.8%sy,  0.0%ni, 86.6%id,  0.5%wa,  0.2%hi,  0.6%si,  0.0%st
    Mem:   4042764k total,  4001096k used,    41668k free,   383536k buffers
    Swap:  2104472k total,     7900k used,  2096572k free,  1557040k cached

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
    32497 jacky     20   0  669m 222m  31m R   10  5.6       29:27.62 firefox
     4788 yiuwing   20   0  257m  18m  13m S    5  0.5          5:42.44 konsole
     5657 Liuxiaof  20   0  585m 159m  30m S    4  4.0          5:25.06 firefox
     4455 xiefc      20   0  542m  124m  30m R    4  3.1         7:23.03 firefox
     6188 Liuxiaof  20   0  191m   17m  13m S    4  0.5          0:01.16 konsole


    统计信息区前五行是系统整体的统计信息。第一行是任务队列信息,同 uptime  命令的执行结果。其内容如下:

    01:06:48 当前时间
    up 1:22 系统运行时间,格式为时:分
    1 user 当前登录用户
    load average: 0.06, 0.60, 0.48 系统负载,即任务队列的平均长度。
                三个数值分别为  1分钟、5分钟、15分钟前到现在的平均值。


    第二、三行为进程和CPU的信息。当有多个CPU时,这些内容可能会超过两行。内容如下:

    Tasks: 29 total 进程总数
    1 running 正在运行的进程数
    28 sleeping 睡眠的进程数
    0 stopped 停止的进程数
    0 zombie 僵尸进程数
    Cpu(s): 0.3% us 用户空间占用CPU百分比
    1.0% sy 内核空间占用CPU百分比
    0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
    98.7% id 空闲CPU百分比
    0.0% wa 等待输入输出的CPU时间百分比
    0.0% hi  
    0.0% si  


    最后两行为内存信息。内容如下:

    Mem: 191272k total 物理内存总量
    173656k used 使用的物理内存总量
    17616k free 空闲内存总量
    22052k buffers 用作内核缓存的内存量
    Swap: 192772k total 交换区总量
    0k used 使用的交换区总量
    192772k free 空闲交换区总量
    123988k cached 缓冲的交换区总量。
                内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
                该数值即为这些内容已存在于内存中的交换区的大小。
                相应的内存再次被换出时可不必再对交换区写入。


    进程信息区统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。

    序号 列名 含义
    a PID 进程id
    b PPID 父进程id
    c RUSER Real user name
    d UID 进程所有者的用户id
    e USER 进程所有者的用户名
    f GROUP 进程所有者的组名
    g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
    h PR 优先级
    i NI nice值。负值表示高优先级,正值表示低优先级
    j P 最后使用的CPU,仅在多CPU环境下有意义
    k %CPU 上次更新到现在的CPU时间占用百分比
    l TIME 进程使用的CPU时间总计,单位秒
    m TIME+ 进程使用的CPU时间总计,单位1/100秒
    n %MEM 进程使用的物理内存百分比
    o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
    p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
    q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
    r CODE 可执行代码占用的物理内存大小,单位kb
    s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
    t SHR 共享内存大小,单位kb
    u nFLT 页面错误次数
    v nDRT 最后一次写入到现在,被修改过的页面数。
    w S 进程状态。
                D=不可中断的睡眠状态
                R=运行
                S=睡眠
                T=跟踪/停止
                Z=僵尸进程
    x COMMAND 命令名/命令行
    y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
    z Flags 任务标志,参考 sched.h


    默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。可以通过下面的快捷键来更改显示内容。
    更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。
    o 键可以改变列的显示顺序。按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z  可以将相应的列向左移动。最后按回车键确定。
    按大写的 FO 键,然后按 a-z 可以将进程按照相应的列进行排序。而大写的  R 键可以将当前的排序倒转。

     

    ==============================

    top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。
    <空格>:立刻刷新。
    P:根据CPU使用大小进行排序。
    T:根据时间、累计时间排序。
    q:退出top命令。
    m:切换显示内存信息。
    t:切换显示进程和CPU状态信息。
    c:切换显示命令名称和完整命令行。
    M:根据使用内存大小进行排序。
    W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

     应用实例
    使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。
    a.作用
    free命令用来显示内存的使用情况,使用权限是所有用户。
    b.格式
    free [-b -k -m] [-o] [-s delay] [-t] [-V]
    c.主要参数
    -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
    -s delay:显示每隔多少秒数来显示一次内存使用情况。
    -t:显示内存总和列。
    -o:不显示缓冲区调节列。
    d.应用实例
    free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作一个方便实时监控器。
    #free -b -s5
    使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次

  • loadrunner 错误&解决方案锦集

    2011-10-26 16:21:18

    error:missing newline in d:\loadrunner\name.dat

    场景执行时报error:missing newline in d:\loadrunner\name.dat


    第二次执行不报

    两个解决办法:
    第一:如果参数不是很多的话,不要打开记事本去编辑参数,就直接在LR提供的参数的表格中进行编辑即可。

    第二:如果参数很多超过100条的话。 在记事本中编辑好了之后,记着在最后一个参数后打个回车,让鼠标的光标移动到下一行。

    Step download timeout (120 seconds)

    这是一个经常会遇到的问题,解决得办法走以下步骤:

    1、修改run time setting中的请求超时时间,增加到600s,其中有三项的参数可以一次都修改了,HTTP-request connect timeoutHTTP-request receieve timeoutStep download timeout,分别建议修改为6006005000run time setting设置完了后记住还需要在control组件的optionrun time setting中设置相应的参数。

    2、办法一不能解决的情况下,解决办法如下:

    设置runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。切记此法只对windows系统起作用,此法来自zee的资料。

    问题描述:Connection reset by peer.

    这个问题不多遇见,一般是由于下载的速度慢,导致超时,所以,需要调整一下超时时间。

    解决办法:Run-time setting窗口中的‘Internet Protocol’-‘Preferences’设置set advanced options(设置高级选项),重新设置一下“HTTP-request connect timeoutsec),可以稍微设大一些”。

    问题描述:connection refused

    这个的错误的原因比较复杂,也可能很简单也可能需要查看好几个地方,解决起来不同的方式也不同。

    1、首先检查是不是连接(weblogic)服务过大部分被拒绝,需要监控服务(weblogic)的连接等待情况,此时需要增加acceptBacklog,每次增加25%来提高看是否解决,同时还需要增加连接池和调整执行线程数,(连接池数*Statement Cache Size)的值应该小于等于oracle连接数最大值。

    2、如果方法一操作后没有变化,此时需要去查看服务器操作系统中是否对连接数做了限制,AIX下可以直接vi文件limits修改其中的连接限制数、端口数,还有tcp连接等待时间间隔大小,wiodows类似,只不过windows修改注册表,具体修改注册表中有TcpTimedWaitDelayMaxUserPort项,键值在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \Parameters\]。因为负载生成器的性能太好,发数据包特别快,服务器也响应特别快,从而导致负载生成器的机器的端口在没有timeout之前就全部占满了。在全部占满后,就会出现上面的错误。执行netstat –na命令,可以看到打开了很多端口。所以就调整TCP的time out。即在最后一个端口还没有用到时,前面已经有端口在释放了。

    1,这里的TcpTimedWaitDelay默认值应该中是30s,所以这里,把这个值调小为5s(按需要调整)。
    2,也可以把MaxUserPort调大(如果这个值不是最大值的话)。

    问题描述:open many files

    问题一般都在压力较大的时候出现,由于服务器或者应用中间件本身对于打开的文件数有最大值限制造成,解决办法:

    1、修改操作系统的文件数限制,aix下面修改limits下的nofiles限制条件,增大或者设置为没有限制,尽量对涉及到的服务器都作修改。

    2、方法一解决不了情况下再去查看应用服务器weblogiccommonEnv.sh文件,修改其中的nofiles文件max-nofiles数增大,应该就可以通过了,具体就是查找到nofiles方法,修改其中else条件的执行体,把文件打开数调大。修改前记住备份此文件,防止修改出错。

    3、linux上可以通过ulimit –HSn 4096来修改文件打开数限制,也可以通过ulimit -a 来查看。

    4、linux上可以通过lsof -p pid | wc -l 来查看进程打开的句柄数。

    五、问题描述has shut down the connection prematurely

    一般是在访问应用服务器时出现,大用户量和小用户量均会出现。

    来自网上的解释:

    1>应用访问死掉

    小用户时:程序上的问题。程序上存在数据库的问题

    2>应用服务没有死

    应用服务参数设置问题

    例如:

    在许多客户端连接Weblogic应用服务器被拒绝,而在服务器端没有错误显示,则有可能是Weblogic中的元素的AcceptBacklog属性值设得过低。如果连接时收到connection refused消息,说明应提高该值,每次增加25

    Java连接池的大小设置,或JVM的设置等

    3>数据库的连接

    在应用服务的性能参数可能太小了

    数据库启动的最大连接数(跟硬件的内存有关)

    以上信息有一定的参考价值,实际情况可以参考此类调试。

    如果是以上所说的小用户时:程序上的问题。程序上存在数据库的问题,那就必须采用更加专业的工具来抓取出现问题的程序,主要是程序中执行效率很低的sql语句,weblogic可以采用introscope定位,期间可以注意观察一下jvm的垃圾回收情况看是否正常,我在实践中并发500用户和600用户时曾出现过jvm锯齿型的变化,上升下降都很快,这应该是不太正常的。

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

    实际中,可以用telent 站点看看是否可以连接进去,可以通过修改连接池中的连接数和适当增加应用内存值,问题可以解决。

    六、问题描述Failed to connect to server

    这个问题一般是客户端链接到服务失败,原因有两个客户端连接限制(也就是压力负载机器),一个网络延迟严重,解决办法:

    1、修改负载机器注册表中的TcpTimedWaitDelay减小延时和MaxUserPort增加端口数。注:这将增加机器的负荷。

    2、检查网络延迟情况,看问题出在什么环节。

    建议为了减少这种情况,办法一最好测试前就完成了,保证干净的网络环境,每个负载机器的用户数不易过大,尽量平均每台负载器的用户数,这样以上问题出现的概率就很小了。

    七、问题描述Overlapped transmission of request to ... WSA_IO_PENDING

    这个问题,解决方法:

    1、方法一,在脚本前加入web_set_sockets_option("OVERLAPPED_SEND", "0"),禁用TTFB细分,问题即可解决,但是TTFB细分图将不能再使用,附图。

    来源:(http://blog.sina.com.cn/s/blog_5a06b52a0100ib2u.html) - 出现error问题及解决方法总结_海棠烟雨1002_新浪博客

    2、方法二,可以通过增加连接池和应用系统的内存,每次增加25%。

    八、问题描述Deleted the current transaction ... since response time is not accurate

    这个问题不多遇见,一般出现在压力机器上发生ping值为负数(AMD双核CPU),可以重新启动pc机或者打补丁,附图。

    九、问题描述HTTP Status-Code=500 (Internal Server Error) for

    1、应用服务当掉,重新启动应用服务。

    2、当应用系统处于的可用内存处于阀值以下时,出现HTTP Status-Code=500的概率非常高,此时只要增加应用系统的内存,问题即可解决。

    十、问题描述Failed to transmit data to network: [10057]Socket is not connected

    这个错误是由网络原因造成的,PC1和PC2上面都装了相同的loadrunner 9.0,且以相同数量的虚拟用户数运行相同的业务(机器上的条件都相同),PC1上面有少部分用户报错,PC2上的用户全部执行通过。

    十一、问题描述 Error -27257: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of iteration number 1
    解决方法:web_reg_save_param位置放错了,应该放到请求页面前面。
    十二、问题描述 通过Controler调用远程代理时报错,Error: CCI security error:You are running under secure mode and the function system is not allowed in this mode.
    解决方法:在代理开启的时候,去掉勾选防火墙选项。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    3.LoadRunner HTTP服务器状态代码:在录制Web协议脚本回放脚本的过程中,会出现HTTP服务器状态代码,例如常见的页面-404错误提示、-500错误提示。

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

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

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

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

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

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

    4.LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。

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

    Action.c(41): web_submit_form. highest severity level was “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-based script”模式来录制脚本。

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

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

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

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

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

    错误现象:利用LoadRunner 8.0版本来录制Web Services协议的脚本没有任何错误提示,回放脚本时会出现如下错误提示“Error:server 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”安装上即可。

    2.load generator is currently running them aximum number of vuser of this type

    使用的是loadrunner8.0,有10000个用户的web的license,global的有10个。

    在测试的时候发现runningvuser到达1000以后就不能再提高,后面的vuser就会出错。错误是“Theloadgeneratoriscurrentlyrunningthemaximumnumberofvuserofthistype”.

    已经可以排除是loadgenerator机器本身资源的问题。因为换了性能比较强的酷睿2还是同样的问题,CPU和memory都有空闲。

    解决办法:

    在loadgenerator中有一个Vuserlimitstab,可以设置runninguser的最大数目。即设置 load generator----Details------Vuser limits ----Other Vusers 的最大参数

    3.LoadRunner 常见问题:

    (1)sofeware caused connction:这种情况,一般是脚本有问题,或者loadrunner有问题。解决方法:重新启动机器,或者重新录制脚本,估计是loadrunner的bug。

    (2)cannot connect to server:无法连接到服务器。这种情况是服务器的配置有问题,服务器无法承受过多的并发连接了。需要优化服务器的配置,

    如操作系统采用windows 2003 server,

    优化tomcat配置:maxThreads="500" minSpareThreads="400" maxSpareThreads="450"。但是tomcat 最多支持500个并发访问

    优化apache配置:

    ThreadsPerChild 1900

    MaxRequestsPerChild 10000

    其他的错误如:

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

    HTTP Status-Code=503 (Service Temporarily Unavailable)

    一般都是由于服务器配置不够好引起的,按照问题(2)处理,如果仍旧不行,需要优化硬件和调整程序了。

    Apache问题:

    (1) File does not exist: C:/Apache/htdocs/favicon.ico:

    这个问题是apache,htdocs目录没有favicon.ico文件引起的,该文件是网站的图标,仅在firefox,myIE等浏览器出现。

    (2) 图片无法显示:

    配置apache后,却无法显示图片。

    解决方法:把程序的图片,按照程序结构copy到apache的htdocs目录下。

    (3) 无法处理请求:

    当我们输入 ***.do 命令后,apache确返回错误信息,而连接tomcat却没有问题。原因是没有把.do命令转发给tomcat处理。解决方法如下:

    在apache配置文件中配置如下内容:

    DocumentRoot "C:/Apache/htdocs"

    JkMount /*.jsp loadbalancer

    JkMount /*.do loadbalancer

    11.LoadRunner请求无法找到:在录制Web协议脚本回放脚本的过程中,会出现请求无法找到的现象,而导致脚本运行停止。

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

      Action.c(41): web_submit_form. highest severity level was "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-based script”模式来录制脚本。

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

      错误现象:利用LoadRunner 8.0版本来录制Web Services协议的脚本没有任何错误提示,回放脚本时会出现如下错误提示“Error:server 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”安装上即可。


     

  • TFS错误解决方案:TF31003错误及解决方案

    2011-05-26 14:08:16

    TF31003:您的用户帐户没有连接到 Team Foundation Server {0} 的权限。请与 Team Foundation Server 管理员联系,请求其向您的帐户添加适当的权限。

    此问题由权限控制引起,若链接tfs时,出现此错误,可详细检查一下几点权限是否正确:

    1、是否将该用户加入到域用户中,一般由公司运维人员负责,将新员工的计算机加入到域用户中;

    2、服务器上已经把用户加入到域,同时确保用户的计算机加入到域,“我的电脑”->右键“属性”->选择“计算机名”,更改计算机名称为域用户名称,并将其加入到域,计算机用户,隶属于域,输入域,确定后提示重启计算机。重新启动计算机,重新连接tfs服务,OK

    3、检查该用户是否已经在tfs上分配有权限,否则也无法连接tfs。

    注:用户已经加入域,则tfs管理员可以正常分配权限给用户,但用户本机无法连接tfs,此时一般是用户计算机名称错误,或未将计算机加入到域。

    以上三点确保没问题,TF31003也就解决了。

  • TFS 使用心得--权限管理

    2009-08-17 18:06:24

        最近一段时间负责管理公司技术人员的TFS的权限分配,在此之前,我对tfs一点都不了解,没用过,也没听朋友用过,只在进公司时指导我的组长帮我把这个工具装上,告知要在上面报bug,即bug管理在上面,之后的很长一段时间就只知道tfs可以管理bug,可以管理文档,可以管理源代码,这点是从我负责测试的那个项目下的文件夹中看到的,至于怎么来管理,其中有多复杂,没有太多的了解。

        指导两个月前,接手tfs权限管理工作以来,才知道里面有多复杂,经理只告诉我怎么分配项目成员的项目权限,其他的都不知道,起初还以为这样就万事大吉了,呵呵,原来那些只是皮毛,里面的权限还十分的复杂,这是在我两个月来的管理中琢磨出来的,凭现在对tfs权限管理的了解,基本可以应对公司员工的tfs权限的分配。

        说tfs权限的复杂,其实也不是很复杂,它只是把各部分的权限分开控制,但各部分的权限又可以相互继承,分的多了,操作起来就容易出现问题,关联的多了,更容易出现问题,继而形成了它的复杂度。

        下面来分享一下我的使用心得,我还是刚入手,了解的一点点,拿来汇总一下,以便今后的工作和学习,有帮助的可以看看。

        tfs的权限分不同的级别,不同级别的权限其安全性不同,这点帮助文档中部分信息十分完备:

         权限决定了是否授权用户进行工作区管理和项目创建等操作。当在 Team Foundation Server 中创建项目时,无论选择哪种过程模板,都会为该项目创建四个默认组。默认情况下,为这些组各自定义了一组权限,这些权限决定了组成员可以执行的操作。

    • Project Administrator

    • Contributor

    • Reader

    • Build Services

    要管理默认组并创建自定义组,管理员必须了解权限的含义以及显式设置权限引起的安全问题。

    注意注意:

    本主题不讨论 Windows SharePoint Services 或 SQL Reporting Services 的权限。本主题只讨论在 Team Foundation Server 中设置的权限。

    “折叠”图像权限设置

    Team Foundation Server 中的权限有两种显式授权设置:“拒绝”“允许”。还有一种隐式授权,它既不将权限设置为“允许”,也不将其设置为“拒绝”。此授权是一种隐式“拒绝”设置,又称为“未设置”。

    拒绝

    “拒绝”不允许授权用户或组执行权限说明中提到的操作。“拒绝”是 Team Foundation Server 中最强大的权限设置。如果用户所属的 Team Foundation Server 组将特定权限设置为“拒绝”,那么即使用户所属的另一个组将该权限设置为“允许”,该用户仍无法执行该功能。此规则的唯一例外是用户属于项目的“Project Administrators”组的成员或者属于“Team Foundation Administrators”组的成员的情况。如果用户是项目的 Project Administrators 同样,如果用户是 Team Foundation“Administrators”组的成员,则该组的特权将覆盖该用户在 Team Foundation Server 中的显式“拒绝”。

    允许

    “允许”则允许授权用户或组执行权限说明中提到的操作。“允许”是 Team Foundation Server 中第二强大的权限设置。它也是设置最频繁的权限设置。如果不将权限显式设置为“允许”,用户或组将不能在 Team Foundation Server 中执行该操作。

    未设置

    默认情况下,Team Foundation Server 中的多数权限既没有设置为“拒绝”,也没有设置为“允许”。权限处于“未设置”状态,它隐式拒绝授权用户和组执行权限说明中指定的操作。但是,因为权限既没有显式设置为“拒绝”,也没有显式设置为“允许”,它可以从用户或组所属的其他组继承授权。

    “折叠”图像继承

    当用户或组的权限为“未设置”时,因为 Team Foundation Server 中的权限是可继承的,所以用户或组可能受到其所属组权限的显式设置的影响。例如,如果一个用户属于某一项目中的两个自定义组,其中一个组将权限显式设置为“拒绝”,另一个组将同一权限保留为“未设置”,用户将无权执行该权限所控制的操作(用户从两个组中都继承了权限,“拒绝”优先于“未设置”权限)。

    注意注意:

    在 Team Foundation Server 以外(如 Windows SharePoint Services 中)设置的权限,不会在 Team Foundation Server 中继承。本主题中不对其进行讨论。

    某些授权设置优先于其他授权设置。在 Team Foundation Server 中,“拒绝”权限优先于包括“允许”在内的所有其他权限设置。例如,用户可能属于一个项目中的两个组。对于其中一个组,“发布测试结果”权限设置为“拒绝”;而另一个组则将该权限设置为“允许”“拒绝”设置优先级更高,用户无权发布测试结果。此规则的唯一例外是用户属于项目的“Project Administrators”组的成员或者属于“Team Foundation Administrators”组的成员的情况。如果用户是项目的 Project Administrators 同样,如果用户是“Team Foundation Administrators”组的成员,则该组的特权将覆盖该用户在 Team Foundation Server 中的显式“拒绝”。

    “折叠”图像通过 Team Foundation Server 用户界面和命令行设置权限

    许多要为 Team Foundation Server 设置的权限是通过 Team Foundation Server 用户界面控制的。您可以根据服务器(服务器级别权限)或项目(项目级别权限)设置这些权限。您还可以根据项目为查看工作项以及与工作项交互设置区域级别权限。有关默认情况下为哪些用户设置哪些权限,以及为 MSF for Agile Software Development 或 MSF CMMI Process Improvement 组设置哪些权限的更多信息,请参见 Team Foundation Server 默认组、权限和角色。有关如何为用户和组设置权限的更多信息,请参见管理用户和组管理权限。有关管理工作项的更多信息,请参见管理 Team Foundation 工作项

    服务器级别权限

    服务器级别权限不特定于单个项目,而是在服务器范围设置的。只能为三个类别的用户设置这些权限:

    • 服务器级的用户和组,如 Team Foundation Administrators

    • 已在 Team Foundation 服务器上添加至服务器级的项目级组

    • 您创建并添加至服务器级的自定义组

    您可以通过在 Team Foundation Server 中右击团队资源管理器中的服务器,然后单击“安全”来设置这些权限。您可以使用 TFSSecurity 命令行实用工具来设置这些权限,带有 tf: 标识的命令行实用工具除外。对于带有 tf: 标识的权限,可使用源代码管理的 tf 命令行实用工具的 Permission 命令设置这些权限。有关更多信息,请参见 TFSSecurity 命令行实用工具命令Permission 命令

    权限名称

    命令行中的名称

    说明

    管理搁置的更改

    tf: AdminShelvesets

    具有该权限的用户可以删除其他用户创建的搁置集。

    管理仓库

    ADMINISTER_WAREHOUSE

    具有该权限的用户可以使用 WarehouseController.asmx Web 服务的 ChangeSetting Web 方法更改仓库设置。例如,您可以允许用户设置计算 OLAP 多维数据集的更新时间间隔。

    管理工作区

    tf: AdminWorkspaces

    具有该权限的用户可以为其他用户创建工作区并删除其他用户创建的工作区。

    创建工作区

    tf: CreateWorkspace

    具有该权限的用户可以创建源代码管理工作区。

    创建新项目

    CREATE_PROJECTS

    具有此权限的用户可以在 Team Foundation Server 中创建新项目。为了成功创建新项目,这些用户必须是 Windows SharePoint Server 中“SharePoint Central Admins”组的成员,并且在 SQL Reporting Services 中具有“内容管理员”权限。

    编辑服务器级的信息

    GENERIC_WRITE

    tf: AdminConfiguration

    tf: AdminConnections

    具有此权限的用户可以编辑 Team Foundation Server 上用户和组的服务器级别权限。他们可以从 Team Foundation Server 中添加或移除服务器级的 Team Foundation Server 应用程序组。当通过菜单设置时,“编辑服务器级别信息”权限还将隐式允许用户修改源代码管理权限。若要从命令行授予上述所有权限,必须使用 tf.exe Permission 命令授予 AdminConfigurationAdminConnections 权限,以及 GENERIC_WRITE。

    注意注意:

    无法删除 Team Foundation Administrators 等默认服务器组。

    改变跟踪设置

    DIAGNOSTIC_TRACE

    具有此权限的用户可以更改跟踪设置,以收集有关 Team Foundation Server Web 服务的更详细的诊断信息。有关跟踪的更多信息,请参见 Team Foundation Server 的跟踪设置

    触发事件

    TRIGGER_EVENT

    具有此权限的用户可以在 Team Foundation Server 中触发项目警报事件。该权限只应指派给服务帐户。

    管理过程模板

    MANAGE_TEMPLATE

    具有此权限的用户可以从 Team Foundation Server 下载、向其上载、创建和编辑过程模板。

    查看服务器级别信息

    GENERIC_READ

    具有该权限的用户可以查看服务器级别的组成员资格以及那些用户的权限。

    查看系统同步信息

    SYNCHRONIZE_READ

    有此权限的用户可触发同步事件。该权限只应指派给服务帐户。

    项目级别权限

    项目级别权限特定于单个项目的用户和组。您可以通过在 Team Foundation Server 中右击团队资源管理器中的项目,单击“团队项目设置”再单击“安全”来设置这些权限。还可以使用“TFSSecurity”命令行实用工具来设置这些权限。

    权限名称

    命令行中的名称

    说明

    删除此项目

    DELETE

    具有此权限的用户可以从 Team Foundation Server 中删除他们有权删除的项目。

    编辑项目级信息

    GENERIC_WRITE

    具有此权限的用户可以编辑 Team Foundation Server 上用户和组的项目级别权限。

    发布测试结果

    PUBLISH_TEST_RESULTS

    具有该权限的用户可以添加或移除团队项目门户的测试结果,也可以添加或移除测试运行。

    查看项目级信息

    GENERIC_READ

    具有该权限的用户可以查看项目级别的组成员资格以及那些项目用户的权限。

    生成级别的权限

    生成级别的权限特定于生成计算机的用户和组。您可以通过右击团队资源管理器中的项目,单击“团队项目设置”再单击“安全”来设置这些权限。另外,您还可以使用 TFSSecurity 命令行实用工具设置这些权限。

    权限名称

    命令行中的名称

    说明

    管理版本

    ADMINISTER_BUILD

    具有该权限的用户可以删除完成的生成并停止正在进行的生成。

    编辑版本质量

    EDIT_BUILD_STATUS

    具有此权限的用户可以通过 Team Foundation Build 用户界面添加有关版本质量的信息。此信息存储在 Team Foundation Build 的数据库存储区中。

    启动版本

    START_BUILD

    具有此权限的用户可以通过 Team Foundation Build 界面或从命令行启动版本。

    写入版本操作存储区

    UPDATE_BUILD

    必须向用于运行生成服务的帐户授予此权限,才能更新 Team Foundation Build 的数据库存储区。此权限应只分配给服务帐户,而不应分配给单个用户。

    工作项跟踪区域级别权限

    区域级别权限特定于单个项目的用户和组。您可以通过右击团队资源管理器中的项目,单击“区域和迭代”,在“区域”选项卡上单击“安全”来设置这些权限。另外,您还可以使用 TFSSecurity 命令行实用工具设置这些权限。

    注意注意:

    某些工作项跟踪操作需要多种权限。例如,您需要多种权限来删除节点。

    权限名称

    命令行中的名称

    说明

    创建子节点并对子节点排序

    CREATE_CHILDREN

    有此权限的用户可以创建新的区域节点。同时具有此权限以及“编辑此节点”权限的用户可以移动任何子区域节点或对任何子区域节点重新排序。

    删除此节点

    DELETE

    同时具有此权限以及对另一个节点的“编辑此节点”权限的用户可以删除区域节点并对所删节点中的现有工作项重新分类。删除的父节点下的任何子节点将同时删除。

    编辑此节点

    GENERIC_WRITE

    具有该权限的用户可以重命名区域节点。

    编辑此节点中的工作项

    WORK_ITEM_WRITE

    具有该权限的用户可以编辑此区域节点中的工作项。

    查看此节点

    GENERIC_READ

    具有该权限的用户可以查看此节点的安全设置。

    查看此节点中的工作项

    WORK_ITEM_READ

    具有该权限的用户可以查看,但不能编辑或更改此区域节点中的工作项。

    工作项跟踪迭代级别权限

    迭代级别权限特定于单个项目的用户和组。您可以通过右击团队资源管理器中的项目,单击“区域和迭代”,在“迭代”选项卡上单击“安全”来设置这些权限。另外,您还可以使用 TFSSecurity 命令行实用工具设置这些权限。

    注意注意:

    某些工作项跟踪操作需要多种权限。例如,您需要多种权限来删除节点。

    权限名称

    命令行中的名称

    说明

    创建子节点并对子节点排序

    CREATE_CHILDREN

    具有此权限的用户可以创建新的迭代节点。同时具有此权限以及“编辑此节点”权限的用户可以移动任何子迭代节点或对任何子迭代节点重新排序。

    删除此节点

    DELETE

    同时具有此权限以及对另一个节点的“编辑此节点”权限的用户可以删除迭代节点并对所删节点中的现有工作项重新分类。删除的父节点下的任何子节点将同时删除。

    编辑此节点

    GENERIC_WRITE

    具有此权限的用户可以重命名迭代节点。

    查看此节点

    GENERIC_READ

    具有该权限的用户可以查看此节点的安全设置。

    源代码管理权限

    源代码管理权限特定于源代码文件和文件夹。您可以按以下方法设置这些权限:右击“源代码管理资源管理器”中的文件夹或文件,单击“属性”,在“安全”选项卡上选择要为其更改权限的用户或组,然后编辑“权限”中列出的权限。可以通过使用 tf(源代码管理命令行实用工具)来设置这些权限。

    权限名称

    命令行中的名称

    说明

    读取

    tf: Read

    具有该权限的用户可以读取文件或文件夹的内容。如果用户对文件夹有“读”权限,则即使用户没有打开文件的权限,用户仍可以看到文件夹内容以及文件夹中的文件的属性。

    签出

    tf: PendChange

    具有该权限的用户可以执行签出并对文件夹中的项执行挂起更改。挂起更改的示例包括添加、重命名、删除、撤消删除、分支和合并文件。

    签入

    tf: Checkin

    具有该权限的用户可以签入项并修订任何提交的变更集注释。签入时将提交挂起的更改。

    加标签

    tf: Label

    具有该权限的用户可以对项进行标签。

    锁定

    tf: Lock

    具有该权限的用户可以锁定或取消锁定文件夹或文件。

    修订其他用户的更改

    tf: ReviseOther

    即使其他用户签入了文件,具有该权限的用户仍可以编辑该签入文件上的注释。

    取消锁定其他用户的更改

    tf: UnlockOther

    具有该权限的用户可以取消锁定其他用户锁定的文件。

    撤消其他用户的更改

    tf: UndoOther

    具有该权限的用户可以撤消其他用户所做的挂起的更改。

    管理标签

    tf: LabelOther

    具有该权限的用户可以编辑或删除其他用户创建的标签。

    操作安全设置

    tf: AdminProjRights

    具有该权限的用户可以设置这些文件和文件夹的权限。

    签入其他用户的更改

    tf: CheckinOther

    具有该权限的用户可以签入其他用户所做的更改。签入时将提交挂起的更改。

     
     
         我遇到的80%的问题按上面的权限说明基本都解决了,认真摸索一下上面的那些权限,彻底了解了,tfs的权限大概就掌握的差不多了,本人也在摸索过程中。另外,提示一下,当在项目源代码中新建管理文件夹时,一定要注意“继承项目权限”项前面的勾要勾上,不然,会造成无人能添加该文件的管理成员的局面。这个问题难到了我们不少leader,呵呵,最后团队合作才发现了这个问题,大家一定要注意了,不然管理员也无能为力了。】
         暂时总结一下,学习中,不断完善中。。。
  • TFS学习:团队浏览器---文档节点排错

    2009-07-29 18:31:54

    关于 团队浏览器-&gt;文档 节点 排错的思路

    (English Version)

    用户可以通过 团队浏览器(以下简称TE->TFS服务器名->团队项目名->文档 节点来读取和操作项目文档。这篇文章讨论1)项目文档树形结构是如何在TE中显示出来的,2)几种观察到的错误情形,以及 3)出现错误时如何排查的思路。

     

    当用户登录到TE,或在团队项目节点上进行“刷新”操作时,TE做如下动作:

    1.  TE调用一个WSS web service  http://<WSSServer:port>/sites/<project name>/_vti_bin/Lists.asmx, web method GetListItems。参数定义令WSS递归读取团队项目文档库根路径下所有文件/文件夹记录。调用方法使用的身份是当前使用TE的用户,而不是 TFS 服务用户。

    2.  WSS web service 返回的响应是一个XML字符串,主要部分就是一个数据集,每条记录对应文档库中的一个文件或文件夹。记录包括一些描述该文件/文件夹的WSS属性。

    3.  TEXML数据集每条记录的ows_FileRef属性(文件/文件夹的路径)建立树形结构。对每个”\”结尾的记录,添加一个文件夹节点;对每个非”\”结尾的数据,按照路径添加到相应文件夹节点下。如路径为“\folderA\folderB\fileC.doc” 的项目,就添加到文件夹folderA 下的文件夹folderB下,命名为fileC.doc。这里的实现很直接。

     

    现在来看几种出问题的情形。

    l  “文档”节点标了个红叉,下面没有数据. 因为从WSS web service取数据的请求是使用当前用户身份发出的,因此如果当前用户没有访问该WSS文档库的权限,就没有数据返回。 这是TFS新用户经常提出的问题。 TFS中的项目团队和权限定义仅覆盖版本控制和任务项管理。为了让团队成员能够访问团队项目站点及文档库,项目经理需要在WSS站点中额外定义用户的访问权限。同样的,为了让项目成员可以访问到各种报表,项目经理还需要在reporting service站点定义相应权限。   

    另一个可能的原因是目标WSS服务当前(对本机)不可用。这两种情形使用web浏览器访问一下WSS站点就可以验证。

    l  文档树出现错误。这种情况很少见。有一次用户报告说TE中的文档树是错误的。有一个文件夹丢失了,文件夹中的文档都被错误地放置在文档库根目录下面。检查WSS web method返回的数据,我们发现记录集中所有的文件\文件夹都在,唯独缺少丢失的文件夹对应的记录。这样TE在建立文档树的时候就没有生成该文件夹节点。文件夹下的文档无处可放,就直接放在了根路径下。最终原因是WSS数据库中该文件夹对应的记录不知何故丢失了。补足这一记录,问题就解决了。

    顺便说一句,最初看起来确实像是TE出了问题。WSS数据库记录丢失的情况下,WSS自己的站点似乎知道如何处理。WSS站点中相应的文件和文件夹都显示在正确的位置。

    l  一些文件/文件夹从文档树中丢失了. 您的WSS文档库是不是存放了超过一万条记录呢?TEWSS请求数据时,参数“RowLimit” 设定为 10,000。因此文档树最多显示一万条记录(包括文件和文件夹)。TE20052008中这个数量无法通过配置进行修改,将来的版本或许会提高限额。如果您的文档库超过一万条记录,那么不要从TE看文档了,还是用WSS站点吧。

     

    当到TE->文档 节点出现错误的时候, 建议按照如下顺序排错:

    1.     在同一台计算机上,使用同一登录帐户,通过web浏览器打开项目portal站点,看是否能够正常浏览TE无法访问的内容。如果也出现了问题,就从WSS方面入手。否则继续往下;

    2.     抓取TEWSS之间的网络通讯包(是用MS network monitor,wireshark, fiddler等工具.), 检查围绕/sites/<project name>/_vti_bin/Lists.asmx的请求和响应。请求是否发送向正确的server?参数是否正确?响应是否包含正确的数据集?

    3.     如果步骤2中的WSS响应看起来没有问题,那多半就是TE出状况了。可以到MSDN论坛看看,或者联系微软技术支持。

  • 解决访问TFS时“文档”和“报告”打叉的问题

    2009-07-29 18:01:17


    自从使用了VSTS,访问TFS时"文档"和"报告"出现小红叉,就是这个问题与我结下了不解之缘,一直没有解决!于是乎我就在博问上发表了“关于TFS中,windows帐户配置问题 ” ,悬赏分5分;等了许久许久,没有人给予答复;本人在博客圆安家不久,人生地不熟。好心的兄弟给我顶了一贴.......... 最后在问题将要过期的前一分钟,很无奈地把它关闭了。
    这时候我想到了微软的TFS讲师王然,于是发Email求助。内容如下:
    "王老师,您好.我最近学TFS,看了您的教程.现在遇到一个TFS设置的问题,我装的是单服务器模式.已为要使用的windows帐户配置了wss和 report services的查看权限,在装有TFS的服务器上,也就是本地机器上,测试“文档”和“报告”是可以连上的。但是在别的机器上用同样的windows 帐户登陆之后。“文档”和“报告”却是带小红叉的。就是说没有连上,多次刷新无效。断开连接,重新连接也不行。关闭本地防火墙也不行。不知道是什么原因,网上找了找。无结果。请问这是怎么回事啊? "
    王然讲师的答复:
    在工作组的环境下,需要使用同名同密码的策略,也就是说:在客户端也要建立和服务器上相同的用户名和密码,然后使用这个用户登录,然后再连接就可以了。
    结果不容乐观,我的问题依旧没有解决。就再次发了Email:
    您好!
     我这里使用的是同一个局域网的.我在自己的机器上创建了一个和服务器一样的用户---如:用户:Test,密码:123;然后我用Administrator用户连接服务器,报表和文档连接失败;重启,再次尝试连接.依然没有成功;接着注销了Administrator用户,用Test用户登录,然后再次连接,报表和文档还是显示一个小红叉.不知道是何种原因?您能给分析一下吗?谢谢...............
    再次得到的答复:
    服务器上你用哪个用连没有问题,在客户端就用哪个用户登录。肯定是没有问题的。像你说的:在服务器和客户端建一个test 123用户,这个用户在服务器上连接没有问题,在客户端就没有问题。就用一个用户 ,和administrator没有关系。如果你在服务器上是用administrator连接的,那在客户端也用administrator(同密码)登录,连接服务器,肯定没有问题。

    看起来没有办法了。问题就这样到了今天.......................................
    网上关于TFS的东西很少,有时候还能在英文网站上找些..................
    给大家发这么多没用的信息,实在抱歉,只是想抒发一下问题所带来的影响;

    就在今天,新的项目刚放上去不久,一个兄弟再次提到了这个问题。于是不得不再次探讨。但就在这个时候,我的“文档”和“报告”的小红叉却莫名其妙的消失了。郁闷之时。去寻找原因,最终还是没有找到。在做了多次测试后,把问题锁定到了"DNS"解析问题上。在工作组里只有两个人的“文档”和“报告”能连接到 TFS上。同时在cmd 命令行里输入“ping pcserver"(pcserver是TFS服务器,安装配置情况在“关于TFS中,windows帐户配置问题 ”已有说明)可以正常解析;在“文档”和“报告”连接不上的机器上会出现“找不到pcserver” 的相关提示。
    于是就找到了“C:\WINDOWS\system32\drivers\etc”这个路径下的“hosts”文件,注意这个文件是没有扩展名的(如果你安装了MSN的话,会出现一个"hosts.msn"的文件,和"hosts"文件内容相同),这个文件可以直接用记事本打开。这是你会在最后一行看到“127.0.0.1       localhost” (我的机器用的是win2003的系统),前面加"#"的是说明;这时候你可以在“localhost”后面敲回车。在另一行写入“TFS服务器IP TFS服务器名字”;在两者中间用空格分开就可以了。这时候你再次连接TFS服务器的时候,就会发现那个“可爱”的小红叉已经不见了;
    下面来介绍一下,这样做的原因:
    一、Hosts文件的位置
        Window系统中有个Hosts文件(没有后缀名),在Windows 98系统下该文件在Windows文件夹。在Windows 2000/XP/Vista系统中位于\%Systemroot%\System32\Drivers\Etc 文件夹中,其中,%Systemroot%指系统安装路径。例如,Windows XP 安装在C:\WINDOWS,那么Hosts文件就在C:\WINDOWS\system32\drivers\etc中。 你也可以用windows自带的查找功能搜索找到hosts文件。 该文件其实是一个纯文本的文件,用普通的文本编辑软件如记事本等都能打开和编辑。
    二、Hosts文件的基本内容
        用记事本打开hosts文件,就可以看见了微软对这个文件的说明。Hosts文件文一般有如下面的基本内容:
    # Copyright (c) 1993-1999 Microsoft Corp.
    #
    # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
    #
    # This file contains the mappings of IP addresses to host names. Each
    # entry should be kept on an individual line. The IP address should
    # be placed in the first column followed by the corresponding host name.
    # The IP address and the host name should be separated by at least one
    # space.
    #
    # Additionally, comments (such as these) may be inserted on individual
    # lines or following the machine name denoted by a '#' symbol.
    #
    # For example:
    #
    # 102.54.94.97 rhino.acme.com # source server
    # 38.25.63.10 x.acme.com # x client host

    127.0.0.1 localhost
    这个文件是根据TCP/IP for Windows 的标准来工作的。它的作用是定义IP地址和Host name(主机名)的映射关系,是一个映射IP地址和Host name (主机名) 的规定。这个规定中,要求每段只能包括一个映射关系,也就是一个IP地址和一个与之有映射关系的主机名。 IP地址要放在每段的最前面,映射的Host name(主机名)在IP后面,中间用至少一个空格分隔。对于这段的映射说明,用“#”分割后用文字说明。
    三、Hosts文件的工作方式
        我们知道在网络上访问网站,要首先通过DNS服务器把要访问的网络域名(XXXX.com)解析成XXX.XXX.XXX.XXX的IP地址后,计算机才能对这个网络域名作访问。要是对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这样访问网络的效率就会降低,因为DNS做域名解析和返回IP都需要时间。
    为了提高对经常访问的网络域名的解析效率,可以通过利用Hosts文件中建立域名和IP的映射关系来达到目的。根据Windows系统规定,在进行DNS请求以前,Windows系统会先检查自己的Hosts文件中是否有这个网络域名映射关系。如果有则,调用这个IP地址映射,如果没有,再向已知的DNS服务器提出域名解析。也就是说Hosts的请求级别比DNS高。

    最后要指出的是,Hosts文件配置的映射是静态的,如果TFS服务器更改了IP请及时更新客户端的IP地址,否则将不能访问。
    版权归 三月软件小组--高超所有    转载请注明   谢谢!

  • 自动化软件测试入门、管理与实现(英文翻译)

    2009-07-27 16:18:44

    第一章

    The Birth and Evolution of Automated Testing

    自动化测试的产生与发展

    An effective test program, incorporating the automation of software testing,involves a mini-development life cycle of its own. Automated testing amounts to a development effort involving strategy an goal planning,test requirement definition,analysis,design,development,execution,and evaluation activities.

     

        一个有效的测试程序,包括自动化软件测试,还包括其自身的一个小型开发生命周期。自动化测试无异于开发努力的一个目标,涉及战略规划,测试要求的定义,分析,设计, 开发 , 执行和评价活动。
     
    1.1 Automated testing(自动化测试)
        “我们需要新的应用软件越早越好。”“我现在需要那些产品插件。”这两句话听起来相似吗?
         当今的软件管理者和软件开发者被要求产品在日益缩小的计划和最低限度的资源中完成,90%多的开发者已经超出最晚期限,对67%的开发者来说,超出项目的最晚期限(项目延期)是很平常的事了。另外,91%的开发者不得不在开发周期的后期删除部分关键功能来按期完成项目。斯坦迪什集团报道支持类似的统计结果。尽早的把商品投入市场意味着一个产品的生存和灭亡的不同,从而也关乎着一个企业的生存和灭亡。
            

  • 如何更有效的进行回归测试

    2009-04-24 17:20:49

    最近在做系统的回归测试,由于产品是升级过来的,升级后系统的回归测试如果覆盖所有的测试用例,效率太低。怎样才能更有效的进行回归测试呢,找到下面的资料,感觉方法还是挺不错的。

    以前在网上看到过很多的关于选择回归测试用例的文章,总结下来也就是下面几点:
    对于一个软件开发项目来说,项目的测试组在实施测试的过程中会将所开发的测试用例保存到“测试用例库”中,并对其进行维护和管理。当得到一个软件的基线版本时,用于基线版本测试的所有测试用例就形成了基线测试用例库。在需要进行回归测试的时候,就可以根据所选择的回归测试策略,从基线测试用例库中提取合适的测试用例组成回归测试包,通过运行回归测试包来实现回归测试。保存在基线测试用例库中的测试用例可能是自动测试脚本,也有可能是测试用例的手工实现过程。

    回归测试需要时间、经费和人力来计划、实施和管理。为了在给定的预算和进度下,尽可能有效率和有效力地进行回归测试,需要对测试用例库进行维护并依据一定的策略选择相应的回归测试包。

    1、测试用例库的维护

    为了最大限度地满足客户的需要和适应应用的要求,软件在其生命周期中会频繁地被修改和不断推出新的版本,修改后的或者新版本的软件会添加一些新的功能或者在软件功能上产生某些变化。随着软件的改变,软件的功能和应用接口以及软件的实现发生了演变,测试用例库中的一些测试用例可能会失去针对性和有效性,而另一些测试用例可能会变得过时,还有一些测试用例将完全不能运行。为了保证测试用例库中测试用例的有效性,必须对测试用例库进行维护。同时,被修改的或新增添的软件功能,仅仅靠重新运行以前的测试用例并不足以揭示其中的问题,有必要追加新的测试用例来测试这些新的功能或特征。因此,测试用例库的维护工作还应包括开发新测试用例,这些新的测试用例用来测试软件的新特征或者覆盖现有测试用例无法覆盖的软件功能或特征。

    测试用例的维护是一个不间断的过程,通常可以将软件开发的基线作为基准,维护的主要内容包括下述几个方面。

    (1)、删除过时的测试用例
    因为需求的改变等原因可能会使一个基线测试用例不再适合被测试系统,这些测试用例就会过时。例如,某个变量的界限发生了改变,原来针对边界值的测试就无法完成对新边界测试。所以,在软件的每次修改后都应进行相应的过时测试用例的删除。
    (2)、改进不受控制的测试用例
    随着软件项目的进展,测试用例库中的用例会不断增加,其中会出现一些对输入或运行状态十分敏感的测试用例。这些测试不容易重复且结果难以控制,会影响回归测试的效率,需要进行改进,使其达到可重复和可控制的要求.

    (3)删除冗余的测试用例
    如果存在两个或者更多个测试用例针对一组相同的输入和输出进行测试,那么这些测试用例是冗余的。冗余测试用例的存在降低了回归测试的效率。所以需要定期的整理测试用例库,并将冗余的用例删除掉.
    (4)增加新的测试用例
    如果某个程序段、构件或关键的接口在现有的测试中没有被测试,那么应该开发新测试用例重新对其进行测试。并将新开发的测试用例合并到基线测试包中。
     
    通过对测试用例库的维护不仅改善了测试用例的可用性,而且也提高了测试库的可信性,同时还可以将一个基线测试用例库的效率和效用保持在一个较高的级别上.
     
    2、回归测试包的选择
    在软件生命周期中,即使一个得到良好维护的测试用例库也可能变得相当大,这使每次回归测试都重新运行完整的测试包变得不切实际。一个完全的回归测试包括每个基线测试用例,时间和成本约束可能阻碍运行这样一个测试,有时测试组不得不选择一个缩减的回归测试包来完成回归测试。
     
    回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时,有可能删除了将揭示回归错误的测试用例,消除了发现回归错误的机会。然而,如果采用了代码相依性分析等安全的缩减技术,就可以决定哪些测试用例可以被删除而不会让回归测试的意图遭到破坏。
     
    选择回归测试策略应该兼顾效率和有效性两个方面。常用的选择回归测试的方式包括:
     
    (1)、再测试全部测试用例
    选择基线测试用例库中的全部测试用例组成回归测试包,这是一种比较安全的方法,再测试全部用例具有最低的遗漏回归错误的风险,但测试成本最高。全部再测试几乎可以应用到任何情况下,基本上不需要进行分析和重新开发,但是,随着开发工作的进展,测试用例不断增多,重复原先所有的测试将带来很大的工作量,往往超出了我们的预算和进度。
    (2)基于风险选择测试用例
    可以基于一定的风险标准来从基线测试用例库中选择回归测试包。首先运行最重要的、关键的和可疑的测试,而跳过那些非关键的、优先级别低的或者高稳定的测试用例,这些用例即便可能测试到缺陷,这些缺陷的严重性也仅有三级或四级。一般而言,测试从主要特征到次要特征。
    (3)基于操作剖面选择测试用例
    如果基线测试用例库的测试用例是基于软件操作剖面开发的,测试用例的分布情况反映了系统的实际使用情况。回归测试所使用的测试用例个数可以由测试预算确定,回归测试可以优先选择那些针对最重要或最频繁使用功能的测试用例,释放和缓解最高级别的风险,有助于尽早发现那些对可靠性有最大影响的故障。这种方法可以在一个给定的预算下最有效的提高系统可靠性,但实施起来有一定的难度。
    (4)再测试修改部分
    当测试者对修改的局部化有足够的信心时,可以通过相依性分析识别软件的修改情况并分析修改的影响,将回归测试局限于被改变的模块和它的接口上。通常,一个回归错误一定涉及一个新的、修改的或删除的代码段。在允许的条件下,回归测试尽可能覆盖受到影响的部分。
     
    再测试全部用例的策略是最安全的策略,但已经运行过许多次的回归测试不太可能揭示新的错误,而且很多时候,由于时间、人员、设备和经费的原因,不允许选择再测试全部用例的回归测试策略,此时,可以选择适当的策略进行缩减的回归测试。
     
    3、回归测试的基本过程
    有了测试用例库的维护方法和回归测试包的选择策略,回归测试可遵循下述基本过程进行:
    (1)识别出软件中被修改的部分。
    (2)从原基线测试用例库T中,排除所有不再适用的测试用例,确定那些对新的软件版本依然有效的测试用例,其结果是建立一个新的基线测试用例库T0。
    (3). 依据一定的策略从T0中选择测试用例测试被修改的软件。
    (4). 如果必要,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分。
    (5). 用T1执行修改后的软件。
     
    第(2)和第(3)步测试验证修改是否破坏了现有的功能,第(4)和第(5)步测试验证 修改工作本身。
     
    另外,回归测试集(要进行的测试的子集)包括三种不同类型的测试用例:
    能够测试软件的所有功能的代表性测试用例。
    专门针对可能会被修改影响的软件功能的附加测试。
    针对修改过的软件成分的测试。
  • Iris简易教程

    2009-04-16 17:40:41

    工作突然要用抓包工具,之前用过Iris,有一年没碰过了,当时用的时候也是似懂非懂的,简单知道一些自己关注的地方,现在要重捡起来用了,也几乎都忘光了,为了应急,凭着些许的记忆,找了一个简单的教程,十几分钟就让你上手了。
  • 测试中英文对照

    2009-03-17 17:50:42

    早有收集,没有保存下来,有机会了,就开始吧。

    Acceptance testing : 验收测试
    Acceptance Testing
    :可接受性测试
    Accessibility
    test : 软体适用性测试
    actual outcome
    :实际结果        
    Ad hoc testing     :
    随机测试
    Algorithm analysis :
    算法分析
    algorithm
    :算法        
    Alpha testing      : α
    测试
    analysis
    :分析        
    anomaly
    :异常        
    application software
    :应用软件        
    Application under test (AUT) :
    所测试的应用程序
    Architecture       :
    构架
    Artifact           :
    工件
    ASQ
    :自动化软件质量(Automated Software Quality
    Assertion checking :
    断言检查
    Association        :
    关联
    Audit              :
    审计
    audit trail
    :审计跟踪        
    Automated Testing
    自动化测试

    Backus-Naur FormBNF范式        
    baseline
    :基线        
    Basic Block
    :基本块        
    basis test set
    :基本测试集        
    Behaviour          :
    行为
    Bench test         :
    基准测试
    benchmark
    :标杆/指标/基准        
    Best practise      :
    最佳实践
    Beta testing       : β
    测试
    Black Box Testing
    :黑盒测试        
    Blocking bug       :
    阻碍性错误
    Bottom-up testing  :
    自底向上测试
    boundary value coverage
    :边界值覆盖        
    boundary value testing
    :边界值测试        
    Boundary values    :
    边界值
    Boundry Value Analysis
    :边界值分析        
    branch condition combination coverage
    :分支条件组合覆盖        
    branch condition combination testing
    :分支条件组合测试        
    branch condition coverage
    :分支条件覆盖        
    branch condition testing
    :分支条件测试
    branch condition
    :分支条件  
    Branch coverage    :
    分支覆盖
    branch outcome
    :分支结果        
    branch point
    :分支点        
    branch testing
    :分支测试        
    branch
    :分支        
    Breadth Testing
    :广度测试        
    Brute force testing:
    强力测试
    Buddy test         :
    合伙测试
    Buffer             :
    缓冲
    Bug                :
    错误
    Bug bash           : 错误大扫除
    bug fix            :  
    错误修正
    Bug report         :
    错误报告
    Bug tracking system:
    错误跟踪系统
    bug
    :缺陷
    Build              :
    工作版本(内部小版本)
    Build Verfication tests(BVTs):
    版本验证测试
    Build-in           :
    内置

    Capability Maturity Model (CMM):   能力成熟度模型
    Capability Maturity Model Integration (
    CMMI): 能力成熟度模型整合
    capture/playback tool
    :捕获/回放工具        
    Capture/Replay Tool
    :捕获/回放工具        
    CASE
    :计算机辅助软件工程(computer aided software engineering
    CAST
    :计算机辅助测试        
    cause-effect graph
    :因果图        
    certification        
    :证明        
    change control
    :变更控制        
    Change Management  :
    变更管理
    Change Request     :
    变更请求
    Character Set      :
    字符集
    Check In           :
    检入
    Check Out          :
    检出
    Closeout           :
    收尾
    code audit        
    :代码审计        
    Code coverage      :
    代码覆盖
    Code Inspection
    :代码检视        
    Code page          :
    代码页
    Code rule          :
    编码规范
    Code sytle         :
    编码风格
    Code Walkthrough
    :代码走读        
    code-based testing
    :基于代码的测试        
    coding standards
    :编程规范        
    Common sense       :
    常识
    Compatibility Testing
    :兼容性测试        
    complete path testing        
    :完全路径测试        
    completeness
    :完整性        
    complexity        
    :复杂性        
    Component testing     :
    组件测试
    Component
    :组件        
    computation data use
    :计算数据使用        
    computer system security
    :计算机系统安全性        
    Concurrency user      :
    并发用户
    Condition coverage    :
    条件覆盖      
    condition outcome     :
    条件结果        
    condition             :
    条件        
    configuration control
    :配置控制        
    Configuration item    :
    配置项
    configuration management
    :配置管理        
    Configuration testing :
    配置测试
    conformance criterion
    一致性标准        
    Conformance Testing
    一致性测试        
    consistency        
    一致性        
    consistency checker
    一致性检查器        
    Control flow graph    :
    控制流程图
    control flow graph
    :控制流图        
    control flow
    :控制流        
    conversion testing
    :转换测试        
    Core team             :
    核心小组
    corrective maintenance
    :故障检修        
    correctness        
    :正确性        
    coverage        
    :覆盖率        
    coverage item
    :覆盖项        
    crash
    :崩溃        
    criticality analysis
    :关键性分析        
    criticality
    :关键性        
    CRM(change request management):
    变更需求管理
    Customer-focused mindset :
    客户为中心的理念体系
    Cyclomatic complexity :
    圈复杂度

    data corruption:数据污染        
    data definition C-use pair
    :数据定义C-use使用对        
    data definition P-use coverage
    :数据定义P-use覆盖        
    data definition P-use pair
    :数据定义P-use使用对        
    data definition
    :数据定义        
    data definition-use coverage
    :数据定义使用覆盖        
    data definition-use pair        
    :数据定义使用对        
    data definition-use testing
    :数据定义使用测试        
    data dictionary
    :数据字典        
    Data Flow Analysis    :
    数据流分析
    data flow analysis
    :数据流分析        
    data flow coverage
    :数据流覆盖        
    data flow diagram
    :数据流图        
    data flow testing
    :数据流测试        
    data integrity
    :数据完整性        
    data use
    :数据使用        
    data validation
    :数据确认        
    dead code
    :死代码        
    Debug                 :
    调试
    Debugging
    :调试        
    Decision condition
    :判定条件        
    Decision coverage     :
    判定覆盖
    decision coverage
    :判定覆盖        
    decision outcome
    :判定结果        
    decision table
    :判定表        
    decision
    :判定        
    Defect                :
    缺陷
    defect density        :
    缺陷密度
    Defect Tracking       :
    缺陷跟踪
    Deployment            :
    部署
    Depth Testing
    :深度测试  
    design for sustainability :
    可延续性的设计      
    design of experiments
    :实验设计        
    design-based testing
    :基于设计的测试        
    Desk checking         :
    桌前检查
    desk checking
    :桌面检查   
    Determine Usage Model :
    确定应用模型   
    Determine Potential Risks :
    确定潜在风险
    diagnostic
    :诊断        
    DIF(decimation in frequency) :
    按频率抽取
    dirty testing
    :肮脏测试        
    disaster recovery
    :灾难恢复        
    DIT
    decimation in time: 按时间抽取  
    documentation testing        
    :文档测试        
    domain testing
    :域测试        
    domain
    :域        
    DTP  DETAIL TEST PLAN
    详细确认测试计划
    Dynamic analysis      :
    动态分析
    dynamic analysis
    :动态分析        
    Dynamic Testing
    :动态测试

  • 给自己充点电

    2009-03-17 14:22:35

    最近特别想学习QTP,之前对QTP有一定的了解,并能熟练应用其中的许多功能,但在测试的脚本的维护及编写上还很欠缺,所以想进一步的学习QTP,深入学习脚本,但不知从何学起,又有些许的迷茫,希望高手给一点指点,领我入道,万分期待。。。
Open Toolbar