日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

统计信息

  • 访问量: 1814
  • 日志数: 18
  • 建立时间: 2007-04-18
  • 更新时间: 2008-07-29

RSS订阅

我的最新日志

  • 软件国际化总结

    2008-7-04

    软件国际化是蕴藏着多种技术和内容的新兴软件开发模式,它不同于传统的面向单一

    区域和语言的软件。为了正确实施国际化软件测试,需理解和熟悉国际化软件的背景知识

    和技术,本章的全部内容比较全面地为读者提供了这方面的知识。

    本章从解释国际化软件常用的概念和术语开始,描述了软件国际化与本地化的发展现

    状,讨论了国际化软件的开发周期和采用的开发技术、工程技术和本地化技术。

    本章的主要内容总结如下:

    1.         软件国际化也称为软件全球化,包括国际化和本地化两个过程。

    2.         软件国际化是发展迅速的软件生产方式,可以扩大市场规模,获取更多软件价值。

    3.         国际化软件开发的全过程要贯彻国际化思想和技术,国际化不是软件的最后一道

    4.         工序。

    5.         随着软件外包的快速发展,软件本地化服务成了市场新金矿,多语言、多内容的

    6.         本地化服务是发展的方向。

    7.         资源代码分离的单一源文件技术和支持双字节字符集的Unicode 技术是国际化软

    8.         件的主要技术。

    9.         伪本地化和文字镜像是两种提高国际化效率的工程处理技术。

    10.     翻译记忆(TM)和计算机辅助翻译(CAT)是软件本地化的语言技术,可以保证

    11.     本地化的一致性,提高本地化效率。

    12.     抽取资源、重复利用翻译的内容、调整本地化界面以及修正本地化缺陷是软件本

    13.     地化工程的主要工作内容。

  • LoadRunner 无法链接QC 解决方法

    2008-5-05

    发错信息(1)“Failed to create list of projects on current Quality Center server.”
    (2)“Failed to Get Domain List.

    解决方法:
    Diagnosis: This error may occur with previous version of QuickTest Professional, WinRunner, or LoadRunner, which do not support the new authentication procedure that TestDirector for Quality Center 9.0 uses. This can also happen when using the QC OTA API to create any utilities to connect to QC projects.

    Solution

    Define BACKWARD_SUPPORT_ALL_DOMAINS_PROJECTS as "Y" in the Site Administrator
    This parameter enables the use of DomainList and ProjectsList properties for the purposes of backward compatiblity. If this parameter is set to "Y," the DomainList and ProjectsList properties are supported.

    1. Launch the Site Administrator.
    2. Select the Site Configuration tab.
    3. Set the value for BACKWARD_SUPPORT_ALL_DOMAINS_PROJECTS to Y.

    Note:
    If the parameter does not exist, you will need to add it.

  • LR监控windows、linux方法(studying)

    2007-12-12

    摘自51testing【作者:lijiang816_xiao@hotmail.com


    一、监控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    5   udp    937  rstatd
    100001    4   udp    937  rstatd
    100001    3   udp    937  rstatd
    100001    2   udp    937  rstatd
    100001    1   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进行重启
  • QTP中录制右键弹出菜单的方法

    2007-9-29

    在web页面直接录制右键弹出菜单的操作是不行的,但是可以通过获得webElement获得右键的元素,然后使用Click()函数,将函数中micLeftBtn(这个默认值)改为micRightBtn即可.

  • TD中运行IE7.0兼容问题处理方法

    2007-9-21

    谢谢Mick Gao!

  • POP、SMTP等常用命令

    2007-9-18

    SMTP常用指令
    1、MAIL FROM: <发件人地址> ;向接收者标识发件人地址。
    2、RCPT TO: <收件人地址> ;标识收件人地址。
    3、DATA ;请求发送消息数据,每行以结尾,以一个只有“.”号的行结束。
    4、QUIT ;关闭连接。

    . SMTP的基本命令
    SMTP定义了14个命令,它们是:

    HELO
    MAIL FROM:
    RCPT TO:
    DATA
    RSET
    SEND FROM:
    SOML FROM:
    SAML FROM:
    VRFY
    EXPN
    HELP [ ]
    NOOP
    QUIT
    TURN
    其中使得SMTP工作的基本的命令有7个,分别为:HELO﹑MAIL﹑RCPT﹑DATA﹑REST﹑NOOP和QUIT.下面分别介绍如下。

    HELO--发件方问候收件方,后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。

    MAIL--这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的。这个命令会清空有关的缓冲区,为新的邮件做准备。

    RCPT --这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,它必须报550错误代码通知发件方。如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。

    DATA--收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以单独一行是"."的行结束数据。结束行对于接收方同时意味立即开始缓冲区内的数据传送,传送结束后清空缓冲区。如果传送接受,接收方回复OK。

    REST--这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据,发件人数据和待传送的数据都必须清除,接收放必须回答OK.

    NOOP--这个命令不影响任何参数,只是要求接收放回答OK, 不会影响缓冲区的数据。

    QUIT--SMTP要求接收放必须回答OK,然后中断传输;在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到OK答复前,也不得中断连接。

    下面是SMTP答复中用到的代码和含义:

    500 Syntax error, command unrecognized
    [This may include errors such as command line too long]
    501 Syntax error in parameters or arguments
    502 Command not implemented
    503 Bad sequence of commands
    504 Command parameter not implemented
    211 System status, or system help reply
    214 Help message
    [Information on how to use the receiver or the meaning of a
    particular non-standard command; this reply is useful only to the human user]
    220 Service ready
    221 Service closing transmission channel
    421 Service not available, closing transmission channel
    [This may be a reply to any command if the service knows it must shut down]
    250 Requested mail action okay, completed
    251 User not local; will forward to
    450 Requested mail action not taken: mailbox unavailable
    [E.g., mailbox busy]
    550 Requested action not taken: mailbox unavailable
    [E.g., mailbox not found, no access]
    451 Requested action aborted: error in processing
    551 User not local; please try
    452 Requested action not taken: insufficient system storage
    552 Requested mail action aborted: exceeded storage allocation
    553 Requested action not taken: mailbox name not allowed
    [E.g., mailbox syntax incorrect]
    354 Start mail input; end with .
    554 Transaction failed
    最后,让我们看一个RFC821中给出的例子。这封信是Smith在主机Alpha.ARPA 发给主机Beta.ARPA上的
    Jones,Green和 Brown.并且假定两台主机在同一个网络上。

    S: MAIL FROM:
    R: 250 OK
    S: RCPT TO:
    R: 250 OK
    S: RCPT TO:
    R: 550 No such user here
    S: RCPT TO:
    R: 250 OK
    S: DATA
    R: 354 Start mail input; end with .
    S: Blah blah blah...
    S: ...etc. etc. etc.
    S: .
    R: 250 OK
    邮件最后被对方接受。

    HTTP常用指令

    对于HTTP服务器一般只需发送一个GET命令即可,格式如下:

    GET <路径> HTTP/1.0

    其中路径为服务器上的有效路径或带有完整路径的文件名,命令发出后服务器会返回一组数据并断开与你的连接。这组数据一般分为报头和文件数据两个部分,报头一般以“HTTP/1.x 200 OK”开头表示成功,如其中的“200”为“404”则表示文件未找到,如是其它的数字均表示不成功。报头以结束,接下来就是你所需要的文件数据了。

    以下是IE5.0向服务器发出请求的实例:

    GET / HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    Accept-Encoding: gzip, deflate
    If-Modified-Since: Mon, 07 Aug 2000 04:02:46 GMT
    If-None-Match: "0b7e757240c01:1bce"
    User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
    Host: dong
    Connection: Keep-Alive

    以下是一个HTTP服务返回的数据实例:

    HTTP/1.1 200 OK
    Server: Microsoft-IIS/4.0
    Content-Location: http://202.103.202.203/Default.htm
    Date: Sat, 26 Aug 2000 02:15:07 GMT
    Content-Type: text/html
    Accept-Ranges: bytes
    Last-Modified: Mon, 07 Aug 2000 04:02:46 GMT
    ETag: "0b7e757240c01:1c5a"
    Content-Length: 628


    POP3常用指令

    POP3服务器响应一般为:“+OK”表示成功,“-ERR”表示失败。

    1、USER <用户名> ;用户登录。
    2、PASS <密码> ;发送用户密码。
    3、STAT ;返回邮箱列表(邮件数量、字节)。
    4、DELE <邮件编号> ;删除指定的邮件。
    5、LIST <邮件编号> ;返回指定的邮件报头。
    6、RETR <邮件编号> ;传回指定的邮件,以只有一个“.”号的行结束。
    7、QUIT ;关闭连接。

    NNTP常用指令

    1、ARTICLE [<文章编号或消息ID号>] ;返回指定的文章,以只有“.”号的行结束。
    2、LIST ;返回一份新闻组列表。
    3、GROUP <新闻组名> ;选定一个新闻组。
    4、LAST ;把当前文章指针移向上一篇文章。
    5、NEWGROUP ;返回在指定时间之后创建的新闻组。
    6、NEWNEWS <新闻组名> ;返回在指定时间之后创建的文章。(为年月日,为时分秒)
    7、POST ;请求张贴新文章。返回“340”表示可以发送,接下来就可以发送文章内容了,每行以结尾,以只有一个“.”号的行结束。如果服务器返回“400”表示不许张贴。

    FTP常用指令

    1、USER <用户名> ;注:表示回车换行。
    指定登录的用户名,在连接到FTP服务器后会收到一个以200开头的响应,这表示服务器已准备好,你可以用这个命令开始登录了,命令发出后会收到以230开头的响应表示用户已登录,或以331开头的响应表示需要密码。

    2、PASS <密码>
    当服务器响应331需要密码时,就用这个指令把密码发送到服务器。命令发出后会收到230响应表示已经登录请继续,或530响应表示无法登录。

    3、PORT h1,h2,h3,h4,p1,p2
    为数据连接指定一个IP地址和本地端口,h1—h4是Internet主机的IP地址,p1是本地端口的高位字节,p2是本地端口的低位字节。

    4、APPE <文件名>
    让服务器准备接收一个文件并把这些数据附加到指定的文件中,如果指定的文件不存在就创建它。服务器会响应:125->数据连接已打开,传输启动;150->准备打开数据连接;226->关闭数据连接,操作已成功;250->已完成;421->服务不可用;425->无法打开数据连接;450、532、550、553->无法执行。

    5、CWD <路径>
    改变当前目录为指定的目录(像DOS的CD命令)。服务器响应:250->已完成;421或550->无法执行。

    6、DELE <文件名>
    删除服务器上的指定文件。服务器响应:250->已完成;421、450、550->无法执行。

    7、LIST [<路径>]
    列出指定路径上的文件名(像DOS的DIR命令)。服务器响应同APPE。

    8、MKD <路径>
    在服务器上创建一个目录。服务器响应:257->已创建;421、550->无法执行。

    9、PWD ;返回当前目录名称。

    10、QUIT ;注销用户,终止连接。

    11、RETR <文件名> ;下载文件,服务器响应同APPE。

    12、RMD <路径> ;删除一个目录,服务器响应同DELE。

    13、RNFR <文件名>
    更名一个文件的前一半进程,文件名是服务器上的一个有效文件名。服务器响应:350->等待进一步的信息;421、450、550->无法执行。

    14、RNTO <文件名>
    更名一个文件的后一半进程,文件名为新的文件名。服务器响应:250->已完成;421、532、553->无法执行。

    15、STOR <文件名> ;让服务器接收来自数据连接的文件,响应同APPE。


    参考
    ********************************************************************************
    SMTP 命令简介

    什么是 SMTP
    SMTP (Simple Mail Transfer Protocol) : 电子邮件从客户机传输到服务器或从某一个服务器传输到另一个服务器使用的传输协议。 SMTP 是请求/响应协议,命令和响应都是基于 ASCII 文本,并以 CR 和 LF 符结束。响应包括一个表示返回状态的三位数字代码。SMTP 在 TCP 协议 25 端口监听连接请求。

    什么是 ESMTP
    ESMTP (Extended SMTP),顾名思义,扩展 SMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时, 服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。

    SMTP 命令
    SMTP 命令包括:
    HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
    EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
    MAIL FROM 命令中指定的地址是发件人地址
    RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。
    DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束
    VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
    EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
    HELP 查询服务器支持什么命令
    NOOP 无操作,服务器应响应 OK
    RSET 重置会话,当前传输被取消
    QUIT 结束会话

    连接 快速邮(Ksemail) 邮件系统 使用 SMTP 命令发送邮件
    例如:安装  快速邮(Ksemail) 邮件系统 的邮件服务器IP是172.16.10.254 (蓝色字体内容由客户端输入,红色字体内容是服务返回的)

    telnet 172.16.10.254  25 --------------------------------------- 使用 telnet 命令连接服务器 25 端口
    Trying 172.16.10.254 ... --------------------------------------- 正在连接服务器 25 端口
    Connected to 172.16.10.254 . ----------------------------------- 连接服务器 25 端口成功
    220 ksemail.com Ksemail Mail Server 5.2 Build 041201 (Database-MySQL) ESMTP Ready.   http://www.ksemail.com ------------------------ 显示服务器的标识名称
    helo ksemail.com ------------------------------------------------ 向服务器标识用户身份,发信不要认证,跳过下面几步直接发送 mail from 命令
    250 ksemail.com
    ehlo ksemail.com ------------------------------------------------ ESMTP 命令,发信需要认证。
    250-ksemail.com
    250-PIPELINING
    250-AUTH=LOGIN PLAIN
    250-AUTH LOGIN PLAIN
    250-SIZE 20480000
    250 8BITMIME
    auth login ------------------------------------------------- 进行用户身份认证
    334 VXNlagffdfcmdf5hbWU6 
    Ysdf29zdGFAsdfYW1hedfsadfGl0Lm5ldA== ----------------------------------- BASE64 加密后的用户名
    334 UaGFzac3asdfdvcmQ6 
    aMdTk4adfMadfadfjIxNA== ----------------------------------------------- BASE64 加密后的密码
    235 auth successfully -------------------------------------- 身份认证成功
    (535 auth failure ------------------------------------------ 身份认证失败)
    发到本系统中域名下的账户可跳过身份认证。
    mail from: <test1@domain.com> ------------------------------ mail from 地址 test1@domain.com
    250 ok ----------------------------------------------------- 命令执行成功
    rcpt to: <test2@domain.com> -------------------------------- 递送给地址 test2@domain.com
    250 ok ----------------------------------------------------- 命令执行成功
    data ------------------------------------------------------- 数据传输初始化
    354 go ahead ----------------------------------------------- 开始传输数据
    From: test1@domain.com
    To: test2@domain.com
    Date: Mon, 25 Oct 2004 14:24:27 +0800
    Subject: test mail

    Hi, test2
    This is a test mail, you don't reply it.

    .
    ------------------------------------------------------------ 数据内容,包括BASE64加密后的邮件内容, 以 CRLF.CRLF 结束数据传输
    250 ok message accepted for delivery ----------------------- 命令执行成功
    quit ------------------------------------------------------- 结束会话
    221 Ok,close
    Connection closed by foreign host .------------------------- 断开连接

    POP3 命令简介

    什么是 POP3
    POP3 (Post Office Protocol 3) 即邮局协议的第 3 个版本,它规定怎样将个人计算机连接到 Internet 的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的 第一个离线协议标准, POP3 允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循 POP3 协议的接收邮件服务器,用来接收电子邮件的。

    POP3 命令
    POP3 命令包括:
    USER username 认证用户名
    PASS password 认证密码认证,认证通过则状态转换
    APOP name,digest 认可一种安全传输口令的办法,执行成功导致状态转换,请参见 RFC 1321 。
    STAT 处理请求 server 回送邮箱统计资料,如邮件数、 邮件总字节数
    UIDL n 处理 server 返回用于该指定邮件的唯一标识, 如果没有指定,返回所有的。
    LIST n 处理 server 返回指定邮件的大小等
    RETR n 处理 server 返回邮件的全部文本
    DELE n 处理 server 标记删除,QUIT 命令执行时才真正删除
    RSET 处理撤消所有的 DELE 命令
    TOP n,m 处理 返回 n 号邮件的前 m 行内容,m 必须是自然数
    NOOP 处理 server 返回一个肯定的响应
    QUIT 希望结束会话。如果 server 处于"处理" 状态,则现在进入"更新"状态,删除那些标记成删除的邮件。如果 server 处于"认可"状态,则结束会话时 server 不进入"更新"状态 。

    使用 telnet 连接 快速邮(Ksemail) Server 收信
    例如:安装 快速邮(Ksemail) 的邮件服务器 IP 是 172.16.10.254(蓝色字体内容由客户端输入,红色字体内容是服务返回的)

    telnet 172.16.10.254 110 ----------------------------- 使用 telnet 命令连接服务器 110 端口
    Trying 172.16.10.254... ------------------------------ 正在连接服务器 110 端口
    Connected to 172.16.10.254. -------------------------- 连接服务器 110 端口成功
    +OK Ksemail Mail Server 5.2 Build 041201 (Database-MySQL) POP3 Ready. <15161920.
    38326.525168125@ksemail.com>   http://www.ksemail.com
    user username ------------------------------------------ 输入用户名, username 为具体的用户名
    +OK ---------------------------------------------------- 执行命令成功
    pass password ------------------------------------------ 输入用户密码,password 为具体的密码
    +OK 2 messages ----------------------------------------- 密码认证通过
    (-ERR authorization failed ----------------------------- 密码认证失败)
    stat --------------------------------------------------- 邮箱状态
    +OK 2 6415 --------------------------------------------- 2 为该信箱总邮件数,6415 为总字节数
    list --------------------------------------------------- 列出每封邮件的字节数
    +OK ---------------------------------------------------- 执行命令成功,开始显示,左边为邮件的序号,右边为该邮件的大小
    1 537 -------------------------------------------------- 第 1 封邮件,大小为 537 字节
    2 5878 ------------------------------------------------- 第 2 封邮件,大小为 5878 字节
    .
    top 1 -------------------------------------------------- 接收第 1 封邮件
    +OK ---------------------------------------------------- 接收成功, 返回第 1 封邮件头
    Return-Path: <test1@test.com>
    Delivered-To: test2@test.com
    Received: FROM test.com BY ksemail.com ; Sun, 5 Dec 2004 10:35:33 +0800 (CST)
    From: test1@test.com
    To: test2@test.com
    Date: Mon, 25 Oct 2004 14:24:27 +0800
    Subject: test mail
    .
    retr 1 ------------------------------------------------- 接收第 1 封邮件
    +OK ---------------------------------------------------- 接收成功, 返回第 1 封邮件全部内容
    Return-Path: <test1@test.com>
    Delivered-To: test2@test.com
    Received: FROM test.com BY ksemail.com ; Sun, 5 Dec 2004 10:35:33 +0800 (CST)
    From: test1@test.com
    To: test2@test.com
    Date: Mon, 25 Oct 2004 14:24:27 +0800
    Subject: test mail

    Hi, test2
    This is a test mail, you don't reply it.

    .
    dele 1 ------------------------------------------------- 删除第 1 封邮件
    +OK ---------------------------------------------------- 删除成功
    dele 2 ------------------------------------------------- 删除第 2 封邮件
    +OK ---------------------------------------------------- 删除成功
    quit --------------------------------------------------- 结束会话
    +OK ---------------------------------------------------- 执行命令成功

  • QTP中VBA Excel的使用方法

    2007-7-02

    1.COM组件"Microsoft Excel 9.0 Object Library":即安装了EXCEL软件。

    2.在通用对象的声明过程中定义EXCEL对象:

    Dim xlApp As Excel.Application
    Dim xlBook As Excel.WorkBook
    Dim xlSheet As Excel.Worksheet

    3.在程序中操作EXCEL表常用命令:

    Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
    Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
    xlApp.Visible = True '设置EXCEL对象可见(或不可见)
    Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
    xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值
    xlSheet.PrintOut '打印工作表
    xlBook.Close (True) '关闭工作簿
    xlApp.Quit '结束EXCEL对象
    Set xlApp = Nothing '释放xlApp对象
    xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏
    xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏

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

    获得Excel sheet中已使用的行和列数

    xlsRowCount = wkSheet.UsedRange.Rows.Count
    xlsColumnCount = wkSheet.UsedRange.Columns.Count

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

    获得Excel sheet 的当前行号

    wkSheet.Application.ActiveCell.cells.row

     

  • SVN学习摘要

    2007-6-14

    (摘要自<使用Subversion进行版本控制>http://svnbook.subversion.org.cn/)

    Subversion是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据,版本库按照文件树形式储存数据—包括文件和目录。任意数量的客户端可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。

    对于工作拷贝的每一个文件,Subversion在管理区域.svn/记录两项关键的信息:

    • 工作文件所作为基准的修订版本(叫做文件的工作修订版本)和

    • 一个本地拷贝最后更新的时间戳。

    给定这些信息,通过与版本库通讯,Subversion可以告诉我们工作文件是处与如下四种状态的那一种:

    未修改且是当前的

    文件在工作目录里没有修改,在工作修订版本之后没有修改提交到版本库。svn commit操作不做任何事情,svn update不做任何事情。

    本地已修改且是当前的

    在工作目录已经修改,从基本修订版本之后没有修改提交到版本库。本地修改没有提交,因此svn commit会成功的提交,svn update不做任何事情。

    未修改且不是当前的了

    这个文件在工作目录没有修改,但在版本库中已经修改了。这个文件最终将更新到最新版本,成为当时的公共修订版本。svn commit不做任何事情,svn update将会取得最新的版本到工作拷贝。

    本地已修改且不是最新的 (这种情况碰到的比较多,需要注意红色标记的内容,这样的机制就可以放心Update)

    这个文件在工作目录和版本库都得到修改。一个svn commit将会失败,这个文件必须首先更新,svn update命令会合并公共和本地修改,如果Subversion不可以自动完成,将会让用户解决冲突。svn status命令可以告诉你工作拷贝中文件的状态

  • 一个对象在同一个页面上出现多次时,可以使用附加属性index来解决.

    2007-6-13

    比如:网络硬盘页面上出现了2次<网络硬盘>的链接,使用下面的语句时,QTP运行时会报错

    Browser("title:=上海Ceno soft").Page("title:=上海Ceno soft").Link("name:=网络硬盘").Click

    这是因为Link("name:=网络硬盘")在页面上存在了两次,所以需要修改称:

    Browser("title:=上海Ceno soft").Page("title:=上海Ceno soft").Link("name:=网络硬盘", "index:=0").Click

    这样就ok了

  • QTP与Oracle数据库链接脚本

    2007-6-11

    1)首先要在控制面板中,加一个odbc数据源。
    (2)在qtp中建立连接和记录集
    set cnn=createobject("adodb.connection")
    set ōbjrsa=createobject("adodb.recordset")
    (3)连接数据库
    cnn.open "provide=msdaora;userid=apts;password=apts;data source=afctwo"
    userid/password,是登陆数据库的用户名和密码,这样数据库就连接上。
    (4)对数据库进行操作。
    objrsa.open "select bustypefullname from bustypeinfo",cnn,3,2
    a=objrsa("bustypefullname").value得到字段bustypefullname的值赋值给了变量a

    需要参考ADO

    http://doc.51windows.net/ado/?url=/ado/dir.htm

    例子:

    '删除网络硬盘下所有的文件夹和文件
    '@userName 用户名
    '@domainName 用户所在域名
    Function delAll(userName, domainName)
     Dim wfType
     Dim var
     wfType = 0  ' 0为该用户的跟目录的起始点
     
     Dim rs,sql,pkey,domainId, userId
     set conn=createobject("adodb.connection")
     set rs =createobject("adodb.recordset")
     
     ' Oracle client is required to be installed on your box
    conn.open= "Provider=OraOLEDB.Oracle.1;Password=umail;Persist Security Info=True;User ID=umailrc;SERVER=192.168.6.245;Data Source=umail;DBQ=umail;"
     sql="select domainid from domain where domainname='" & domainName & "'"
     rs.open sql,conn '执行sql语句
     domainId = rs("domainId")
       rs.close
     sql = "select userid from email_users where username= '" & userName & "' and domainId = '" & domainId &"'"
      rs.open sql,conn
     userId = rs("userid")
       rs.close
     sql = "delete from wfs_files where WF_OWNER_ID = '" & userId &"' and WF_TYPE<>0"
     rs.open sql,conn
     sql = "select count(*) from wfs_files where WF_OWNER_ID = '" & userId &"'"
     rs.open sql, conn
     var = rs(0)
     If var = "1" Then
      reporter.ReportEvent micPass, "清空网络硬盘中所有文件和文件夹", "清空成功"
       conn.close
      set conn=nothing '删除对象
     Else
      reporter.ReportEvent micFail, "清空网络硬盘中所有文件和文件夹", "清空失败"
      
     End If
     
      
    End Function


     

Open Toolbar