测试领域有着广阔的发展空间,借鉴,是我们共同的!!

发布新日志

  • adb shell

    2012-09-03 13:22:28

      Android Shell命令的使用可以将复制的文件等相关数据连接到手机中去。我们在这里为大家总结了几个Android Shell命令的常用方法。

      大家可能对于Android这一手机操作系统有所了解,因为市面上很多智能手机都开始采用这一系统来抓住商业机遇。通过对它的深入了解,可以知道,adb是Android重要工具之一,以提供强大的特性,例如复制文件到设备或从设备复制文件。可以使用Android Shell命令行参数连接到手机本身,并发送基本的 shell 命令。

      进入命令行,使用

      1. adb shell

      进入到Android Shell命令模式,注意,这时候模拟器或者手机要启用并且正确接通。

      在这个Android Shell命令环境中,可以:

      显示网络配置,网络配置可显示多个网络连接。注意这多个网络连接:

      lo 是本地或 loopback 连接。

      tiwlan0 是 WiFi 连接,该连接由本地 DHCP 服务器提供一个地址。

      显示 PATH 环境变量的内容。

      执行 su 命令,以成为超级用户。

      将目录改为 /data/app,其中存放用户应用程序。

      列出包含某个应用程序的目录。Android 应用程序文件实际上是归档文件,可通过 WinZip 之类的软件查看。扩展名为 apk。
      发出 ping 命令,查看 Google.com 是否可用。

      从相同的命令提示符环境中,还可以与 SQLite 数据库交互,启动程序以及执行许多其他系统级任务。想像一下您正在连接到电话,因此这是非常了不起的功能。

      一、adb命令

      1. Java代码
      2. adb get-product // 获取设备的ID
      3. adb get-serialno // 获取设备的序列号
      4. adb devices // 得当前运行的模拟器/设备的实例的列表及每个实例的状态
      5. adb bugreport // 查看bug报告

      二、Android Shell命令

      通过adb shell命令进入shell后,执行下列命令。

      1、访问数据库:

      1. sqlite3

      2、记录无线通讯日志

      一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:

      1. logcat -b radio

      3、删除应用:

      Android没有提供一个卸载应用的命令,需要自己手动删除:

      1. cd /data/app
      2. m appName.apk

      注:[appName]为应用的名称;

      三、可以在Android Shell命令下使用的一些linux命令

      命令:

      1. ls // 查看目录
      2. date // 打印或设置当前系统时间
      3. cat /proc/meminfo // 查看内存信息
      4. cat /proc/cpuinfo // 查看CPU信息

      Android Shell命令的相关内容就为大家介绍到这里。


    命令行工具ADBAndvoid Debug Bridge)是Android提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机模拟器的状态。

    adb help

    AndroidDebugBridgeversion 1.0.20

    -d - directs command to the only connected USB device

    returns an error if more than one USB device is present.

    -e - directs command to the only running emulator.

    returns an error if more than one emulator is running.

    -s <serial number> - directs command to the USB device or emulator with

    the given serial number

    -p <product name or path> - simple product name like 'sooner', or

    a relative/absolute path to a product

    out directory like 'out/target/product/sooner'.

    If -p is not specified, the ANDROID_PRODUCT_

    environment variable is used, which must

    be an absolute path.

    devices - list all connected devices

    device commands:

    adb push <local> <remote> - copy file/dir to device

    adb pull <remote> <local> - copy file/dir from device

    adb sync [ <directory> ] - copy host->device only if changed

    (see 'adb help all')

    adbshell - run remote shell interactively

    adb shell <command> - run remote shell command

    adb emu <command> - run emulator console command

    adb logcat [ <filter-spec> ] - View device log

    adb forward <local> <remote> - forward socket connections

    tcp:<port>

    localabstract:<unix domain socket name>

    localreserved:<unix domain socket name>

    localfilesystem:<unix domain socket name>51Testing软件测试网;xm(L!V-S!HQ0Mb U

    dev:<character device name>51Testing软件测试网 UV0j J ]%mb{ bx8C

    jdwp:<process pid> (remote only)

    adb jdwp - list PIDs of processes hosting a JDWP transport

    adb install [-l] [-r] <file> - push this package file to the device and install it

    ('-l' means forward-lock the app)

    ('-r' means reinstall the app, keeping its data)

    adb uninstall [-k] <package> - remove this app package from the device

    ('-k' means keep the data and cache directories)

    adb bugreport - return all information from the device

    that should be included in a bug report.

    adb help - show this help message

    adb version - show version num

    DATAOPTS:

    (no option) - don't touch the data partition

    -w - wipe the data partition

    -d - flash the data partition

    adb wait-for-device - block until device is online

    adb start-server - ensure that there is a server running

    adb kill-server - kill the server if it is running

    adb get-state - prints: offline | bootloader | device

    adb get-product - prints: <product-id>

    adb get-serialno - prints: <serial-number>

    adb status-window - continuously print device status for a specified device

    adb remount - remounts the /system partition on the device read-write

    networking:

    adb ppp <tty> [parameters] - Run PPP over USB.

    Note: you should not automatically start a PDP connection.

    <tty> refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1

    [parameters] - Eg. defaultroute debug dump local notty usepeerdns

    adb sync notes: adb sync [ <directory> ]

    <localdir> can be interpreted in several ways:

    - If <directory> is not specified, both /system and /data partitions will be updated.

    - If it is "system" or "data", only the corresponding partition is updated.

    ADB还可以进行以下的操作:

    1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;

    2、在设备上运行shell命令;

    3、管理设备或手机模拟器上的预定端口;

    4、在设备或手机模拟器上复制或粘贴文件;

    5、安装.apk文件到仿真器上。

    以下为一些常用的操作:

    1、安装应用到模拟器:

    adb install51Testing软件测试网N#nP vz

    比较郁闷的是,Android并没有提供一个卸载应用的命令,只能自己手动删除:

    adb shell

    cd /data/app

    rm app.apk

    2、进入设备或模拟器的shell

    adb shell

    通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个LinuxShell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:

    adb shell [command]

    如:adb shell dmesg会打印出内核的调试信息。

    3、发布端口:

    你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:

    adb forward tcp:5555 tcp:8000

    4、复制文件:

    你可向一个设备或从一个设备中复制文件,

    复制一个文件或目录到设备或模拟器上:

    adb push

    如:adb pushtest.txt /tmp/test.txt

    从设备或模拟器上复制一个文件或目录:

    adb pull

    如:adb pull /addroid/lib/libwebcore.so .

    5、搜索模拟器/设备的实例:

    取得当前运行的模拟器/设备的实例的列表及每个实例的状态:51Testing软件测试网K?;AO&O7Iz3F

    adb devices

    6、查看bug报告:

    adb bugreport

    7、记录无线通讯日志

    一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:51Testing软件测试网en

    adb shell51Testing软件测试网$PE [j/n0[ ? a4a

    logcat -b radio

    8、获取设备的ID和序列号:51Testing软件测试网h*Rl$N4F_U]

    adb get-product51Testing软件测试网hSj*{haO%bz

    adb get-serialno

    9、访问数据库SQLite3

    adb shell

    sqlite3



    安卓网的一个帖子,写得不错,记下来

    ADB全称Android Debug Bridge, 是android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).

    它的主要功能有:


    • 运行设备的shell(命令行)
    • 管理模拟器或设备的端口映射
    • 计算机和设备之间上传/下载文件
    • 将本地apk软件安装至模拟器或android设备



    ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

    先说安装方法, 电脑上需要安装客户端. 客户端包含在sdk里. 设备上不需要安装, 只需要在手机上打开选项settings-applications-development-USBdebugging.

    对于Mac和Linux用户, 下载好的sdk解压后, 可以放~或者任意目录. 然后修改~/.bash_profile文件, 设置运行环境指向sdk的tools目录.
    具体是打开~/.bash_profile文件(如果没有此文件也可以自行添加), 在里面加入一行:

    export PATH=${PATH}:<你的sdk目录>/tools

    然后就可以使用adb命令了.

    嫌安装麻烦的同学其实也可以省去上面安装步骤, 直接输入完整路径来使用命令
    对于windows xp用户, 需要先安装usb驱动 android_usb_windows.zip (1.33 MB) , 然后如果你只打算使用adb而不想下载整个sdk的话, 可以下载这个单独的adb工具包 adb_win.zip (571.56 KB) 下载后解压, 把里面 adb.exe 和 AdbWinApi.dll 两个文件放到系统盘的 windows/system32 文件夹里就可以了

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

    在其他博客中看到类似的文章,收藏

    ADB常用的几个命令
    1. 查看设备

    • adb devices

    这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示

    2. 安装软件

    • adb install <apk文件路径>

    这个命令将指定的apk文件安装到设备上

    3. 卸载软件

    • adb uninstall <软件名>
    • adb uninstall -k <软件名>

    如果加 -k 参数,为卸载软件但是保留配置和缓存文件.

    4. 登录设备shell

    • adb shell
    • adb shell <command命令>

    这个命令将登录设备的shell.
    后面加<command命令>将是直接运行设备命令, 相当于执行远程命令

    5. 从电脑上发送文件到设备

    • adb push <本地路径> <远程路径>

    用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

    6. 从设备上下载文件到电脑

    • adb pull <远程路径> <本地路径>

    用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

    7. 显示帮助信息

    • adb help

    这个命令将显示帮助信息

    删除Android系统Rom自带的软件

    Android系统没有卸载Rom自带软件的功能.可能有些同学很想删除废了武功的Youtube,想删除墙那边的Twitter.

    加上Android的快捷方式没法修改没法自己排序没法分页.

    安装的程序太多就会发现原来找到自己想要的东西很难.

    综上所述,我觉得告知各位菜鸟同学如何删除自带的程序是很有必要的一件事情.

    1.确定手机root了,取得了root权限才能删除系统文件呀.

    2.下载Android_db.rar,解压到%windir/%System32下.

    3.手机连接数据线,在电脑上打开cmd,然后输入命令

    adb remount

    adb shell

    su

    执行完成之后,你会看到:

    * daemon not running. starting it now *

    * daemon started successfully *

    4.接着就是Linux命令行模式了,输入

    cd system/app

    你会发现没啥变化,然后输入ls回车.

    这时候列表显示了system/app里面的所有文件,也就是Rom集成的一些软件了.

    5.开始删除吧.比如删除Youtube,他的文件名是Youtube.odex和Youtube.apk

    我们要删除这2个文件,敲入以下命令:

    rm Youtube.*

    重启,Youtube已经删除掉了,注意各位同学千万不要删除你不知道是啥的东西.

    原文链接:

    http://www.hiapk.com/bbs/thread-623-1-1.html

    指定允许AVD的内存大小:

    emulator -avd avdName -partition-size 256

    启动一个叫avdName的模拟器,允许内存最大为256M


    adb -d 当Android手机用USB连接计算机时可通过adb-d对该装置下命令
    adb -e对正在运行的仿真器下指令
    adb -s指定仿真器序号
    adb dervices显示当前启动的仿真器装置序号
    adb help显示adb指令用法
    adb verson显示adb版本
    adb install安装APK应用程序组件
    adb push上传文件或目录(adb push 文件所在PC的位置即文件名 目的位置)
    adb pull下载文件或目录(adb pull 文件所在手机的位置即文件名 目的位置)
    adb shell进入Android系统命令行模式
    adb logcat监控仿真器运行记录
    adb bugreport生成adb出错报告
    adb start-server启动adb服务器
    adb kill-server关闭adb服务器
    adb get-state取得adb服务器运行状态
    adb get-serialno获得仿真器运行序号
    adb forward tcp:port更改仿真器的网络TCP通信端口

    . 显示系统中全部Android平台:

    android list targets

    2. 显示系统中全部AVD(模拟器):

    android list avd

    3. 创建AVD(模拟器):

    android create avd --name 名称 --target 平台编号

    4. 启动模拟器:

    emulator -avd 名称 -sdcard ~/名称.img (-skin 1280x800)

    5. 删除AVD(模拟器):

    android delete avd --name 名称

    6. 创建SDCard:

    mksdcard 1024M ~/名称.img

    7. AVD(模拟器)所在位置:

    Linux(~/.android/avd) Windows(C:\Documents and Settings\Administrator\.android\avd)

    8. 启动DDMS:

    ddms

    9. 显示当前运行的全部模拟器:

    adb devices

    10. 对某一模拟器执行命令:

    abd -s 模拟器编号 命令

    11. 安装应用程序:

    adb install -r 应用程序.apk

    12. 获取模拟器中的文件:

    adb pull <remote> <local>

    13. 向模拟器中写文件:

    adb push <local> <remote>

    14. 进入模拟器的shell模式:

    adb shell

    15. 启动SDK,文档,实例下载管理器:

    android

    16. 缷载apk包:

    adb shell

    cd data/app

    rm apk包

    exit

    adb uninstall apk包的主包名

    adb install -r apk包

    17. 查看adb命令帮助信息:

    adb help

    18. 在命令行中查看LOG信息:

    adb logcat -s 标签名

    19. adb shell后面跟的命令主要来自:

    源码\system\core\toolbox目录和源码\frameworks\base\cmds目录。

    20. 删除系统应用:

    adb remount (重新挂载系统分区,使系统分区重新可写)。

    adb shell

    cd system/app

    rm *.apk

    21. 获取管理员权限:

    adb root

    22. 启动Activity:

    adb shell am start -n 包名/包名+类名(-n 类名,-a action,-d date,-m MIME-TYPE,-c category,-e 扩展数据,等)。

    23、发布端口:

    你可以设置任意的端口号,做为主机向模拟器或设备的请求端口。如:
    adb forward tcp:5555 tcp:8000

    24、复制文件:

    你可向一个设备或从一个设备中复制文件,
    复制一个文件或目录到设备或模拟器上:
    adb push <source> <destination></destination></source>
    如:adb push test.txt /tmp/test.txt
    从设备或模拟器上复制一个文件或目录:
    adb pull <source> <destination></destination></source>
    如:adb pull /addroid/lib/libwebcore.so .

    25、搜索模拟器/设备的实例:

    取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
    adb devices

    26、查看bug报告:
    adb bugreport
    27、记录无线通讯日志:

    一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
    adb shell
    logcat -b radio

    28、获取设备的ID和序列号:

    adb get-product
    adb get-serialno

    29、访问数据库SQLite3

    adb shell
    sqlite3

    #cd system/sd/data //进入系统内指定文件夹
    #ls //列表显示当前文件夹内容
    #rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件
    #rm xxx //删除文件xxx
    #rmdir xxx //删除xxx的文件夹

  • adb操作命令详解

    2011-05-11 15:25:44

    adb操作命令详解

      卸载软件:
      adb uninstall <软件名>
      adb uninstall -k <软件名>
      如果加 -k 参数,为卸载软件但是保留配置和缓存文件.

      进入设备或模拟器的shell
      adb shell
      通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
      adb shell [command]
      如:adb shell dmesg会打印出内核的调试信息。

      发布端口:
      可以设置任意的端口号,做为主机向模拟器或设备的请求端口。
      如:adb forward tcp:5555 tcp:8000

      从电脑上发送文件到设备:
      adb push <本地路径> <远程路径>
      用push命令可以把本机电脑上的文件或者文件夹复制到设备(手机)

      从设备上下载文件到电脑:
      adb pull <远程路径> <本地路径>
      用pull命令可以把设备(手机)上的文件或者文件夹复制到本机电脑

      查看bug报告:
      adb bugreport

      记录无线通讯日志:
      一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
      adb shell
      logcat -b radio

      获取设备的ID和序列号:
      adb get-product
      adb get-serialno
      adb shell
      sqlite3

     

  • 好久没来了

    2011-05-11 15:23:16

    好久没来了,现在转做andriod方面的测试了,希望广大朋友也都能分享这方面的知识
  • cmm

    2008-08-04 17:13:30

  • 学习vbscript(转)

    2008-07-24 18:32:10

    发现大部分黑白的朋友都不会编程, 这可不是件好事, 所以这次我就写了一个简单的编程教程, 讲一下VBscrīpt. 主要面向菜鸟, 懂得编程的朋友就不要浪费时间了, 如果你想接触以下VBscrīpt也可以, 但既然有编程基础推荐直接去找一些参考书来读, 会比较快.
    什么是VBscrīpt呢? VBscrīpt的全称是:Microsoft Visual Basic scrīpt Editon.(微软公司可视化BASIC脚本版). 正如其字面所透露的信息, VBS(VBscrīpt的进一步简写)是基于Visual Basic的脚本语言. 我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具, 语法基于Basic. 脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成.exe, 而是直接给用户发送.vbs的源程序, 用户就能执行了.
      我知道菜鸟现在最关心的就是用什么工具来开发VBS程序了, 答案是:记事本(Notepad).我不是开玩笑, 其实任何一种文本编辑器都可以用来开发VBS开发, 只不过记事本是由系统自带的, 比较好找而已. 尽管如此, 我还是建议你去下载一个专业的文本编辑器, 因为这些工具可以提供 "语法高亮"等功能, 更加方便开发, 用哪一个随你喜好, 我比较喜欢Edit Plus (2.10).
      OK, 我们先来写一个VBscrīpt程序热热身.
    REM 输入并回显你的名字
    '使用InputBox和Msgbox函数
    Dim name,msg
    msg="请输入你的名字:"
    name=Inputbox(msg,"名称")
    Msgbox(name)
      把上面的程序清单输入到记事本里面, 然后保存为以.vbs为扩展名的文件("保存类型"里面选择"所有文件").然后双击运行, 观察运行结果. 注意:请自己输入程序清单, 不要复制->粘贴!
      我来解释一下这个程序, 第一行和第二行的开头分别是"REM"语句和" ' ", 这两个东西的作用是相同的, 表示本行是注释行, 就是说这两行什么也不干,只是用来说明这段程序的功能, 版权信息等等. 注释行是程序最重要的部分之一, 尽管它不是必需的, 但对于其他人阅读源代码, 以及自己分析源代码是很有好处的. 好的习惯是在必要的地方加上清晰, 简洁的注释.
      Dim用来声明一个变量, 在VBS中, 变量类型并不是那么重要, 就是说VBS会帮你自动识别变量类型, 而且变量在使用前不一定要先声明, 程序会动态分配变量空间. 在VBS中你不用考虑name储存的是一个整数还是一个小数(学名叫"浮点数"), 也不用考虑是不是字符串(一串字符, 比如:"Hello World"), VBS会自动帮你搞定. 所以第三行语句可以删除, 效果不会变, 但我强烈反对这么做, 一个变量的基本原则就是:先声明,后使用.变量名用字母开头,可以使用下划线,数字, 但不能使用vbs已经定义的字, 比如dim, 也不能是纯数字.
      下一行被称之为"赋值", "="是赋值符号, 并不是数学中的等于号, 尽管看起来一样.这是正统的理解, 你要理解成等于也没有什么不可. 赋值号的左边是一个变量, 右边是要赋给变量的值, 经过赋值以后, msg这个变量在程序中等同于"请输入你的名字:"这个字符串,但当msg被再次复制的时候, 原值就会消失. 不光字符串, 其他任何变量都这样被赋值, 例如: a=2, b=12.222等等.
      再往下,Inputbox和Msgbox是VBS内建的函数, 一个函数就相当于一个"黑箱", 有输入(参数)和输出(返回值), 你可以不用了解函数是怎么运作的, 只要了解这个函数能干什么就行了, 我们也可以定义自己的函数, 不过那要等到以后再讲. 现在我们只要了解, 一个函数可以有返回值也可以没有, 可以有参数也可以没有. 例如Inputbox就是有返回值的函数, 我们用赋值号左边的变量来"接"住InputBox的返回值--就是你输入的内容. 在inputbox右边的括号里是参数列表, 每个参数用","分隔开, 每个参数有不同的功效, 比如第一个参数会显示在提示里, 我们把msg这个变量作为第一个参数传给了Inputbox 函数, 而msg="请输入你的名字:", 所以我们在对话框的提示栏就会看到"请输入你的名字:" 第二个参数是对话框的标题, 我们用直接量(学名叫"常量", 这里是"字符串常量")传递给函数, 当然你也可以传递变量. Inputbox还有很多参数, 比如你在"名称"后面再加一个","然后输入随便一串字符(字符串,用双引号""包裹起来的一串字符叫做字符串)然后运行, 看看结果. 你会发现用于输入的文本框有了默认的值, 这就是第三个参数的作用.
      Msgbox函数是用来输出的函数, 在VBS中没有专门的输出函数(BASIC中的print,C中的printf), 所以我们只能用对话框来观察输出结果, Msgbox的必要参数只有一个, 就是要输出的内容, 在这种情况下, 我们不需要理会msgbox的返回值. 关于Msgbox和Inputbox我们以后还会在讨论, 今天只是热热身, 到此为止.
    要点:
    1) 注释(以REM或'开头)行在程序中不起作用, 但能让别人更容易读懂你的程序.
    2) 变量好像一个盒子, 或一个代号, 可以代表你想代表的东西. 变量赋值使用"="
    3) 以""包裹起来的字符称之为"字符串"
    4) 函数像一个"黑箱", 有参数和返回值, 用"="左边的变量可以接住返回值
    5) Inputbox函数弹出一个输入对话框,Msgbox则用于输出
    作业:
    1) 试验Inputbox的第三个参数
    2) 写一段程序输出你的年龄
    3) 写一段程序进行3次输入, 分别输入你和你父母的姓名(要求显示提示), 并分3次输出
    第二篇:
    我真没想到, 第一次的作业竟然有人不会.
      看来要讲的非常非常细致才行, 嗯, 今天讲各种"量"和基本运算
      先说常量, 这个比较简单.
      什么是常量呢, 常量就是其值不可变化的量.
      常量分为两种:第一种, 自然常量. 这叫是因为它们本身就是常量, 你怎么更改21的值呢? 他永远都是21, 不可能变成46
    如果你在程序中使用"21=46", 这样的语句将会引发一个错误. 同样的, 字符串也是常量 (还记得字符串吗? 就是包裹在""之间的一串字符), "Hello World"就是一个例子, 如果你使用"Hello World"="Bye"这样的语句同样会引发一个错误. 你能举出自然常量的更多例子吗?
      第二种, 是我们自己定义的常量,这种量也使用代号, 他们也被赋值, 但和变量的不同点在于, 他们在定义的时候被赋值,以后就不能改变了,如果企图改变将会引发一个错误. 定义一个变量,我们使用"const"这个关键字(关键字的意思是系统定义了有特殊功能的字, 不能作为变量名或常量名使用),格式是:const 常量名=常量值.
    例如:
    const PI=3.1415926
    const NAME="记忆碎片"
      这样我们就定义了两个常量, PI和NAME, 一般说来, 常量名全部使用大写, 但也可以不用, 随你喜好. 将一些在程序中不需要改变的值定义为常量是个好习惯, 这样能防止不必要的意外. 另外, 使用自定义常量也可以减少你的工作量. 比如:
    msgbox("Hello World")
    msgbox("Hello World")
    msgbox("Hello World")
    msgbox("Hello World")
    msgbox("Hello World")
      这个程序输出五次Hello World, 如果你想要改变输出为Bye-Bye, 就必须修改全部程序, 当然你可以手动修改5次, 但如果你要输出1000次呢? 常量就可以替我们解决这个问题:
    const hw="Hello World"
    msgbox(hw)
    msgbox(hw)
    msgbox(hw)
    msgbox(hw)
    msgbox(hw)
      这样当你要修改输出的时候只要修改hw的值就行了.
      好了, 现在我们来看看编程的第一块重要"基石":变量. 解释变量最好的办法我觉得是"盒子", 一个变量好像一个盒子, 里面只能装一个东西, 当你要装进去别的东西的时候必须把原有的东西拿出来. 这个"盒子"是有名称的, 当你在程序中使用变量的时候, 系统会打开盒子取出里面的东西, 让这些东西参与处理, 而不是盒子. 有些语言是很依赖"盒子"里面装些什么东西, 这样才能找到合适的"盒子"(比如C语言), 但VBS给我提供的是能够自动伸缩的"魔术盒", 我们不用关心装进去的是什么东西,
    VBS会自动调整盒子的大小. 例如:
    Dim a1,a2,a3
    a1=14
    a2=12.23
    a3="Hello"
    而不用像C语言那样麻烦: 或者是VB的正规声明(VB可以声明也可以不用)那样:
    int a1; Dim a1 as integer
    float a2; Dim a2 as Double
    char* a3; Dim a3 as strnig
    a1=14; a1=14
    a2=12.23; a2=12.23
    a3="Hello"; a3="Hello"
    嗯……扯远了……
      变量有什么用呢? 哇, 那用处可大了. 最简单, 你并不能确定程序运行时变量的值, 比如前一节课我们编的输入姓名的程序, 你不能确定InputBox返回的是什么(还记得Inputbox的返回值吗? 就是你输入的内容), 所以你就没有办法应对各种情况, 但我们用name这个"盒子"把用户的名字装起来, 到用的时候我们只要知道name这个盒子的名字就行了, 系统会自己打开他并把里面的内容拿出来用. 再举个例子, 我们编写一个程序计算一个矩形的面积, 比如这个程序要发给小学生使用:
    dim a,b,s
    a=15
    b=12
    s=a*b
    msgbox(s)
      这样就可以求出长为15,宽为12的矩形的面积了, 是不是很简单? 当然, 这个程序也可以这样写:
    dim s
    s=15*12
    msgbox(s)
      这样看起来程序短了许多, 也节约内存, 但并不是鼓励的做法, 为什么? 请看下面.
      现在, 我们的程序要变得像点样子才行, 谁的程序写出来还要别人修改源代码才能用啊?
      所以, 我们要接受用户的输入, 还记得吗? InputBox函数.
      修改后程序如下:
    dim a,b,s
    a=inputbox("请输入矩形的长:")
    b=inputbox("请输入矩形的宽:")
    s=a*b
    msgbox(s)
      ok, 这么一修改, 无论用户输入怎样的数据, 我们都能计算出矩形的面积了. 如果你用s=15*12能改嘛? 当然不行.
      我想你已经发现了, vbs中的数学计算和真正的算术没有什么不同, +,-,*,/,(),[],{}都是一样的用法, 比如:
    dim ans
    ans=12+32/4+[(23-10)*2]
    msgbox(ans)
      四则运算的法则在编程中同样生效, 你可以在编程中重新获得小学时候的乐趣(你恨数学?那就别学电脑了).
      在编程中有一个有趣的运算符是"mod", 这个运算符叫做"取余运算符", 就是取得一次除法的余数, 例如
    dim a
    a=16 mod 5
      你知道a等于几吗? Bingo! 没错, 就是1. 因为16 / 5 =3....1, 所以mod计算的结果就是1.
      还有一个运算符是"^"(就是键盘"6"上面的小箭头), 他表示"乘幂"(或者是"方") 比如:
    dim a,b,c
    a=2
    b=a^2
    c=a^3
    msgbox(a)
    msgbox(c)
      则b=a*a=4, c=a*a*a=8
      我们一次不要讲太多, 这次就讲到这里, 现在总结一下.
    要点:
    1) 常量分为自然常量和自定义常量, 常量的值不可修改
    2) 变量就像盒子, 我们不在乎盒子里装的是什么, 但一定要知道盒子的名字
    3) 四则运算在编程中没有任何不同
    4) MOD是取余运算
    作业:
    1) 编一个程序, 计算圆形的面积, 半径由用户给出 (使用Inputbox) PI取值3.14159
    2) 编一个程序取得20 / 3 的余数
  • vbscript错误代码大全(抄)

    2008-07-24 18:22:56

    Microsoft VBscrīpt语法错误(0x800A03E9)-->内存不足 lenovo联想会员俱乐部社区9YV1I(Z O,x5c@:p!q s
    Microsoft VBscrīpt语法错误(0x800A03EA)-->语法错误 lenovo联想会员俱乐部社区,Y]1z'skR6qM.N
    Microsoft VBscrīpt语法错误(0x800A03EB)-->缺少 ':' lenovo联想会员俱乐部社区ztSPK"u
    Microsoft VBscrīpt语法错误(0x800A03ED)-->缺少 '(' lenovo联想会员俱乐部社区8w Z,Z,y$PZ H3p s7Iy
    Microsoft VBscrīpt语法错误(0x800A03EE)-->缺少 ')'
    8p-s1x-i:@:f0Microsoft VBscrīpt语法错误(0x800A03EF)-->缺少 ']'
    5V:JkVUp8\@0Microsoft VBscrīpt语法错误(0x800A03F2)-->缺少标识符 lenovo联想会员俱乐部社区(@)B_ sN
    Microsoft VBscrīpt语法错误(0x800A03F3)-->缺少 '='
    z0o hPz*bV1\1z fC8f0Microsoft VBscrīpt语法错误(0x800A03F4)-->缺少 'If'
    V3}H1t a%P B0Microsoft VBscrīpt语法错误(0x800A03F5)-->缺少 'To'
    *C\TT|jB0Microsoft VBscrīpt语法错误(0x800A03F6)-->缺少 'End' lenovo联想会员俱乐部社区vQ:^1SZ2X
    Microsoft VBscrīpt语法错误(0x800A03F7)-->缺少 'Function' lenovo联想会员俱乐部社区3[\DpFI.\X
    Microsoft VBscrīpt语法错误(0x800A03F8)-->缺少 'Sub' lenovo联想会员俱乐部社区4z#_pne
    Microsoft VBscrīpt语法错误(0x800A03F9)-->缺少 'Then' lenovo联想会员俱乐部社区Q K @ R{Ypm'G
    Microsoft VBscrīpt语法错误(0x800A03FA)-->缺少 'Wend'
    +LL/|/T%m8Td0Microsoft VBscrīpt语法错误(0x800A03FB)-->缺少 'Loop' lenovo联想会员俱乐部社区bPG+T/d{7B
    Microsoft VBscrīpt语法错误(0x800A03FC)-->缺少 'Next' lenovo联想会员俱乐部社区$l Ip"EX
    Microsoft VBscrīpt语法错误(0x800A03FD)-->缺少 'Case'
    G/l)e(v1~(L/[p0Microsoft VBscrīpt语法错误(0x800A03FE)-->缺少 'Select'
    4G K$QiD"W!x[ d1@0Microsoft VBscrīpt语法错误(0x800A03FF)-->缺少表达式 lenovo联想会员俱乐部社区h;^A}k?3ac
    Microsoft VBscrīpt语法错误(0x800A0400)-->缺少语句
    Z)K2v[D4K.\4r N0Microsoft VBscrīpt语法错误(0x800A0401)-->语句未结束 lenovo联想会员俱乐部社区*~5C4\~ I5d&}$S h^
    Microsoft VBscrīpt语法错误(0x800A0402)-->缺少整型常数 lenovo联想会员俱乐部社区S O"lqEY
    Microsoft VBscrīpt语法错误(0x800A0403)-->缺少 'While' 或 'Until'
    XYGf8b2n7u^ p0Microsoft VBscrīpt语法错误(0x800A0404)-->缺少 'While', 'Until' 或语句未结束
    h&i3fV1FEP0Microsoft VBscrīpt语法错误(0x800A0405)-->缺少 'With'
    6`@`'W h M7Z0Microsoft VBscrīpt语法错误(0x800A0406)-->标识符过长
    [YP2qN$`0Microsoft VBscrīpt语法错误(0x800A0407)-->无效数字 lenovo联想会员俱乐部社区F%k4EGy
    Microsoft VBscrīpt语法错误(0x800A0408)-->无效字符 lenovo联想会员俱乐部社区0I"xR6p Cc:B
    Microsoft VBscrīpt语法错误(0x800A0409)-->未结束的字符串常量 lenovo联想会员俱乐部社区 h.v7@]/Tb J
    Microsoft VBscrīpt语法错误(0x800A040A)-->注释未结束
    1oE4I_N8X'} Lq0Microsoft VBscrīpt语法错误(0x800A040D)-->无效使用 'Me' 关键字
    [1nZ"\:P(O#b9L7|6g0Microsoft VBscrīpt语法错误(0x800A040E)-->'loop' 语句缺少 'do' lenovo联想会员俱乐部社区st!Q*_wLS
    Microsoft VBscrīpt语法错误(0x800A040F)-->无效的 'exit' 语句
    /M.]Mo"B0Microsoft VBscrīpt语法错误(0x800A0410)-->循环控制变量 'for' 无效
    rM%Y`f|2ynLg0Microsoft VBscrīpt语法错误(0x800A0411)-->名称重定义
    4Fib8B)@wr0Microsoft VBscrīpt语法错误(0x800A0412)-->必须是行中的第一个语句 lenovo联想会员俱乐部社区u2| `+v9W~@2q
    Microsoft VBscrīpt语法错误(0x800A0413)-->不能为 non-ByVal 参数赋值 lenovo联想会员俱乐部社区"a2wjF;{ Q
    Microsoft VBscrīpt语法错误(0x800A0414)-->调用子程序时不能使用括号 lenovo联想会员俱乐部社区H6aD$[Jk
    Microsoft VBscrīpt语法错误(0x800A0415)-->缺少文字常数
    -cPyLb6Z3A6c0E0Microsoft VBscrīpt语法错误(0x800A0416)-->缺少 'In' lenovo联想会员俱乐部社区"_7E3NiA~
    Microsoft VBscrīpt语法错误(0x800A0417)-->缺少 'Class'
    B}t&| [S^0Microsoft VBscrīpt语法错误(0x800A0418)-->必须在一个类的内部定义
    5AuE tK+Wr0Microsoft VBscrīpt语法错误(0x800A0419)-->在属性声明中缺少 Let , Set 或 Get lenovo联想会员俱乐部社区sm \ B [|3[,V
    Microsoft VBscrīpt语法错误(0x800A041A)-->缺少 'Property' lenovo联想会员俱乐部社区JgJ5Nro
    Microsoft VBscrīpt语法错误(0x800A041B)-->在所有属性的规范中,变量的数目必须一致 lenovo联想会员俱乐部社区O7Wu,`.v%t
    Microsoft VBscrīpt语法错误(0x800A041C)-->在一个类中不允许有多个缺省的属性/方法 lenovo联想会员俱乐部社区#{ M [:\Uw l
    Microsoft VBscrīpt语法错误(0x800A041D)-->类的初始化或终止程序没有参数
    1u:o7K@|$}y0Microsoft VBscrīpt语法错误(0x800A041E)-->属性的 set 或 let 必须至少有一个参数 lenovo联想会员俱乐部社区 R4JA,s U\2Z0K9W
    Microsoft VBscrīpt语法错误(0x800A041F)-->错误的 'Next'
    1i O iA2l!S!@`0Microsoft VBscrīpt语法错误(0x800A0420)-->'Default' 只能在 'Property' , 'Function' 或 'Sub' 中指定 lenovo联想会员俱乐部社区-My!f@:wb
    Microsoft VBscrīpt语法错误(0x800A0421)-->指定 'Default' 时必须同时指定 'Public' ") lenovo联想会员俱乐部社区'Q6p9H5I%^f[
    Microsoft VBscrīpt语法错误(0x800A0422)-->只能在 Property Get 中指定 'Default' lenovo联想会员俱乐部社区7f] { h hq!n'M&AR
    Microsoft VBscrīpt 运行时错误(0x800A0005)-->无效的过程调用或参数 lenovo联想会员俱乐部社区@$Tb&pW} TP z
    Microsoft VBscrīpt 运行时错误(0x800A0006)-->溢出
    tu#CM+Ac_ uX9@0Microsoft VBscrīpt 运行时错误(0x800A0007)-->内存不足 lenovo联想会员俱乐部社区 ]A2GCuHr!O
    Microsoft VBscrīpt 运行时错误(0x800A0009)-->下标越界
    8K_mI6y yZZ)p$E0Microsoft VBscrīpt 运行时错误(0x800A000A)-->该数组为定长的或临时被锁定
    |BH]ws+P la0Microsoft VBscrīpt 运行时错误(0x800A000B)-->被零除
    +mlSE8L0Microsoft VBscrīpt 运行时错误(0x800A000D)-->类型不匹配
    Y$kRG4OX?J5A:fr0Microsoft VBscrīpt 运行时错误(0x800A000E)-->字符串空间不够 lenovo联想会员俱乐部社区;p A0e UV-u*M#lQ
    Microsoft VBscrīpt 运行时错误(0x800A0011)-->不能执行所需的操作 lenovo联想会员俱乐部社区6e6QV"MY|gS
    Microsoft VBscrīpt 运行时错误(0x800A001C)-->堆栈溢出
    ,_"z+NJG6w0Microsoft VBscrīpt 运行时错误(0x800A0023)-->未定义过程或函数 lenovo联想会员俱乐部社区ZY3M I IrHje(K(G
    Microsoft VBscrīpt 运行时错误(0x800A0030)-->加载 DLL 时出错 lenovo联想会员俱乐部社区!V4m{Kh kY b
    Microsoft VBscrīpt 运行时错误(0x800A0033)-->内部错误 lenovo联想会员俱乐部社区"[Ke'n!pE1B
    Microsoft VBscrīpt 运行时错误(0x800A0034)-->错误的文件名或号码
    )J ~5v e:cp0Microsoft VBscrīpt 运行时错误(0x800A0035)-->文件未找到
    "Dh)O5kR:u0Microsoft VBscrīpt 运行时错误(0x800A0036)-->错误的文件模式 lenovo联想会员俱乐部社区 W,daN,dsD(y,\0P
    Microsoft VBscrīpt 运行时错误(0x800A0037)-->文件已经打开 lenovo联想会员俱乐部社区{g#R{MD |q
    Microsoft VBscrīpt 运行时错误(0x800A0039)-->设备 I/O 错误 lenovo联想会员俱乐部社区G7U1l"\f6]@
    Microsoft VBscrīpt 运行时错误(0x800A003A)-->文件已存在
    W!jyZpY0Microsoft VBscrīpt 运行时错误(0x800A003D)-->磁盘已满
    "XSO` i0Microsoft VBscrīpt 运行时错误(0x800A003E)-->输入超出了文件尾 lenovo联想会员俱乐部社区^M+Ro&g8[
    Microsoft VBscrīpt 运行时错误(0x800A0043)-->文件过多
    &s R5E'@7r+Y2k(~3d0Microsoft VBscrīpt 运行时错误(0x800A0044)-->设备不可用
    "y-P3_bm0Microsoft VBscrīpt 运行时错误(0x800A0046)-->没有权限
    .Uu5] `!aj"Q0_1O0Microsoft VBscrīpt 运行时错误(0x800A0047)-->磁盘没有准备好
    Bue_f6Qs0Microsoft VBscrīpt 运行时错误(0x800A004A)-->重命名时不能带有其他驱动器符号
    Mf MQ*Q-\ca:AY!p|0Microsoft VBscrīpt 运行时错误(0x800A004B)-->路径/文件访问错误 lenovo联想会员俱乐部社区7u+gHD B
    Microsoft VBscrīpt 运行时错误(0x800A004C)-->路径未找到
    /^%e s&xd&Uh|F0Microsoft VBscrīpt 运行时错误(0x800A005B)-->对象变量未设置
    2s{v7AC { II.VSb0Microsoft VBscrīpt 运行时错误(0x800A005C)-->For 循环未初始化
    6L xh'X"KZ0Microsoft VBscrīpt 运行时错误(0x800A005E)-->无效使用 Null
    Y{A8m,k*[+Rs)C!B0Microsoft VBscrīpt 运行时错误(0x800A0142)-->不能创建所需的临时文件 lenovo联想会员俱乐部社区0S0L(mv h7^P
    Microsoft VBscrīpt 运行时错误(0x800A01A8)-->缺少对象
    B5]t QbO8bp&E2^t5@0Microsoft VBscrīpt 运行时错误(0x800A01AD)-->ActiveX 部件不能创建对象
    ;L9g_R W'E4d7F0Microsoft VBscrīpt 运行时错误(0x800A01AE)-->类不能支持 Automation 操作 lenovo联想会员俱乐部社区)@6J@e3rc
    Microsoft VBscrīpt 运行时错误(0x800A01B0)-->Automation 操作中文件名或类名未找到
    &BL$p6b%Z"Q t0Microsoft VBscrīpt 运行时错误(0x800A01B6)-->对象不支持此属性或方法 lenovo联想会员俱乐部社区2T%S?Gx Gu%O(j
    Microsoft VBscrīpt 运行时错误(0x800A01B8)-->Automation 操作错误 lenovo联想会员俱乐部社区r4}o#w I [.\
    Microsoft VBscrīpt 运行时错误(0x800A01BD)-->对象不支持此操作 lenovo联想会员俱乐部社区4`J4U.P6YXU p
    Microsoft VBscrīpt 运行时错误(0x800A01BE)-->对象不支持已命名参数
    ,w;{5o[auwx`0Microsoft VBscrīpt 运行时错误(0x800A01BF)-->对象不支持当前区域设置
    L/{$A;it&SW0Microsoft VBscrīpt 运行时错误(0x800A01C0)-->未找到已命名参数
    XV|W+T l0Microsoft VBscrīpt 运行时错误(0x800A01C1)-->参数是必选项 lenovo联想会员俱乐部社区S9v g8g_2_a|z&S(o
    Microsoft VBscrīpt 运行时错误(0x800A01C2)-->错误的参数个数或无效的参数属性值
    0r-R;zF*~!@0Microsoft VBscrīpt 运行时错误(0x800A01C3)-->对象不是一个集合 lenovo联想会员俱乐部社区VNBg1V3plJ
    Microsoft VBscrīpt 运行时错误(0x800A01C5)-->未找到指定的 DLL 函数 lenovo联想会员俱乐部社区,l v?W0Mv&}b4|p
    Microsoft VBscrīpt 运行时错误(0x800A01C7)-->代码资源锁定错误
    r7p!k]k YS'I.b0Microsoft VBscrīpt 运行时错误(0x800A01CA)-->变量使用了一个 VBscrīpt 中不支持的 Automation 类型
    #e:K*}R[0Microsoft VBscrīpt 运行时错误(0x800A01CE)-->远程服务器不存在或不可用
    8LMu+X3b7Yo.V0Microsoft VBscrīpt 运行时错误(0x800A01E1)-->无效图片 lenovo联想会员俱乐部社区bg}N R+m,c/x+D v
    Microsoft VBscrīpt 运行时错误(0x800A01F4)-->变量未定义
    dWhT6F[0Microsoft VBscrīpt 运行时错误(0x800A01F5)-->非法赋值
    `w+h!z,pf,[ G ~0Microsoft VBscrīpt 运行时错误(0x800A01F6)-->对象不能安全地使用 scrīpt 编程
    .F!}j_5Q0V|&\0Microsoft VBscrīpt 运行时错误(0x800A01F7)-->对象不能安全初始化 lenovo联想会员俱乐部社区&[4^"q{5K5K
    Microsoft VBscrīpt 运行时错误(0x800A01F8)-->对象不能安全创建
    __? ^3z2r0Microsoft VBscrīpt 运行时错误(0x800A01F9)-->无效的或无资格的引用 lenovo联想会员俱乐部社区2C^Zd e
    Microsoft VBscrīpt 运行时错误(0x800A01FA)-->类没有被定义 lenovo联想会员俱乐部社区jFEC;TX&e4yUUNG
    Microsoft VBscrīpt 运行时错误(0x800A01FB)-->出现一个意外错误
    cS GE7Ca"{0Microsoft VBscrīpt 运行时错误(0x800A1398)-->缺少常规表达式对象
    {3e*|`c8n8b0r8c0Microsoft VBscrīpt 运行时错误(0x800A1399)-->常规表达式语法错误 lenovo联想会员俱乐部社区E#E M YF0m-t&F
    Microsoft VBscrīpt 运行时错误(0x800A139A)-->错误的数量词
    ?+z;?"i!Y0Microsoft VBscrīpt 运行时错误(0x800A139B)-->常规表达式中缺少 ']'
    0`(Z}!xf9Q x0J Z0Microsoft VBscrīpt 运行时错误(0x800A139C)-->常规表达式中缺少 ')'
    "O3blq n0Microsoft VBscrīpt 运行时错误(0x800A139D)-->字符集越界
    w-?2DGy0Microsoft VBscrīpt 运行时错误(0x800A802B)-->未找到元素
    v|K LjY0ActiveServerPages,ASP0126(0x80004005)-->找不到包含文件 lenovo联想会员俱乐部社区%QYX8u ~_S
    Microsoft OLEDBProviderforODBCDrivers(0x80040E14)-->sql语句出错(字段名错误,或数据类型不匹配) lenovo联想会员俱乐部社区G3QH(y[7F(ZN.O?F
    Microsoft OLEDBProviderforODBCDrivers(0x80040E07)-->sql语句出错(要插入或更新的字段的类型与变量数据类型不匹配)
    6JV&X*`lr0Microsoft OLEDBProviderforODBCDrivers(0x80040E57)-->sql语句出错(要插入或更新的数据溢出)
    a@i}TK"MS0Microsoft OLEDBProviderforODBCDrivers(0x80040E10)-->sql语句出错(update字段名或要更新的数据类型错误) lenovo联想会员俱乐部社区)t5eE@ ZXTW-y+TK
    Microsoft OLEDBProviderforODBCDrivers(0x80004005)-->sql语句出错(要插入或更新的字段的数值不能为空值) lenovo联想会员俱乐部社区I3f` Y1d ZK+ZO;g
    Microsoft OLEDBProviderforODBCDrivers(0x80004005)-->打开数据库出错,没有在指定目录发现数据库 lenovo联想会员俱乐部社区4w b@M}.`
    Microsoft OLEDBProviderforODBCDrivers(0x80040E37)-->没有发现表
    3jPRU$~Y d0ODBCDrivers(0x80040E21)-->sql语句出错(数据类型不匹配或表/字段错误或处于编辑状态,或不存在于conn打开的数据库中) lenovo联想会员俱乐部社区2b[;OUj/n
    ADODB.Recordset(0x800A0BB9)-->sql语句出错(sql语句或conn语句未定义或对一个rs属性进行赋值时发生错误) lenovo联想会员俱乐部社区e^}K:|a7f7h
    ADODB.Recordset(0x800A0CC1)-->rs对像出错(rs对像本身不存在或错误地引用了一个不存在的字段名) lenovo联想会员俱乐部社区$FL%D O1_jR'eJ T?
    ADODB.Recordset(0x800A0BCD)-->rs对像出错(记录集中没有记录却对记录集进行操作)
    ik$}/Wv0ADODB.Recordset(0x800A0E78)-->rs对像出错(记录集不存在,缺少rs.open语句) lenovo联想会员俱乐部社区a*v$e&s%R:J
    ADODB.Recordset(0x800A0CC1)-->rs对像出错(引用了一个不存在的字段名)
    bpe@;]!O f0ADODB.Recordset(0x800A0E7D)-->conn定义错误
    o#O^t*Sz0ADODB.Recordset(0x800A0CB3)-->数据库以只读方式打开,无法更新数据
    Tv\6l!PE0ADODB.Recordset(0x800A000D)-->错误引用rs变量(rs对像已关闭或未定义)
    r3i } AD0--------------------------------------- lenovo联想会员俱乐部社区fSe1Ak(m)Z#o N
    大部分的ADO的错误码对应的含义 lenovo联想会员俱乐部社区#J%o:vr L*m{;YF
    除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到
    -j/J"e B6[+]b[,G0运行时环境的异常处理机制之中。使用编程语言的错误捕获机制(如 Microsoft®
    P$ks0F-xGA|0Visual Basic® 中的 On Error 语句)可捕获及处理下列错误。下表将同时显示十 lenovo联想会员俱乐部社区8bZP!S*i.j#?Ud
    进制和十六进制错误代码值。
    lMK8g:r0常量名称 编号 说明
    Z&Qh?bi.j,c+K0adErrInvalidArgument 3001 0x800A0BB9 应用程序使用的参数其类型错误、超出可接受
    [LNio^N"e0的范围或者与其他参数冲突。 lenovo联想会员俱乐部社区HVL:Bj
    adErrNoCurrentRecord 3021 0x800A0BCD BOF 或 EOF 为 True,或者当前记录已经删除
    p8[8Pc{t"C4g1w0。应用程序请求的操作需要当前记录。
    ks R'H {,voD5H u0adErrIllegalOperation 3219 0x800A0C93 应用程序请求的操作不允许出现在该上下文
    3k J`+c,\"nr0中 adErrInTransaction 3246 0x800A0CAE 在事务中应用程序无法显式关闭 lenovo联想会员俱乐部社区{5{*~{(o6C
    Connection 对象。 lenovo联想会员俱乐部社区G#XV l,`$g6[s;l
    adErrFeatureNotAvailable 3251 0x800A0CB3 提供者不支持应用程序请求的操作。
    +Tj8`9@'l%G!j0adErrItemNotFound 3265 0x800A0CC1 ADO 无法在对应于应用程序请求的名称或顺序引 lenovo联想会员俱乐部社区!A LL-E}&SN
    用的集合中找到对象。
    R7\ H(H&A0adErrObjectInCollection 3367 0x800A0D27 无法追加,对象已经在集合中。 lenovo联想会员俱乐部社区`[$W FA8vD+y5F
    adErrObjectNotSet 3420 0x800A0D5C 应用程序引用的对象不再指向有效的对象。
    ``$gIO'Z0adErrDataConversion 3421 0x800A0D5D 应用程序使用了不符合对当前操作的值类型。
    E:`:]e'I?/P)|0adErrObjectClosed 3704 0x800A0E78 如果对象关闭,则不允许应用程序请求的操作。
    9C{t$w0fX m0adErrObjectOpen 3705 0x800A0E79 如果对象打开,则不允许应用程序请求的操作。 lenovo联想会员俱乐部社区 Cd@.O4H/H-[!Q/n
    adErrProviderNotFound 3706 0x800A0E7A ADO 找不到指定的提供者。 lenovo联想会员俱乐部社区*VFu4Qpe-{
    adErrBoundToCommand 3707 0x800A0E7B 应用程序无法用 Command 对象将 Recordset
    1RWTc O(na0对象的 ActiveConnection 属性更改为它的来源数据。
    m$hHFV-JR0adErrInvalidParamInfo 3708 0x800A0E7C 应用程序错误地定义了 Parameter 对象。 lenovo联想会员俱乐部社区1oP'Xo#V+J Sqt4j
    adErrInvalidConnection 3709 0x800A0E7D 应用程序通过引用关闭或无效的 lenovo联想会员俱乐部社区1SZ;nis'r1i
    Connection 对象来请求对对象的操作。 lenovo联想会员俱乐部社区5kGQy"^pU*t
    lenovo联想会员俱乐部社区/m"K4rN\%jC
    *****************************************************************************
    ri%{ E-xT R@jU0ASP错误代码说明 lenovo联想会员俱乐部社区#J)T;L*? i:ZA!q{
    错误代码 错误消息 说明 lenovo联想会员俱乐部社区c%N-p'do_
    ASP0100 Out of memory 内存不足(不能分配要求的内存 lenovo联想会员俱乐部社区-\ c#Isz
    ASP0101 Unexpected error 意外错误 lenovo联想会员俱乐部社区\5\ EW}/E+Lu
    ASP0102 Expecting string input 缺少字符串输入 lenovo联想会员俱乐部社区Qh&\-nm-h%M/x
    ASP0103 Expecting numeric input 缺少数字输入 lenovo联想会员俱乐部社区/a2c-G~4?
    ASP0104 Opration not allowed 操作不允许 lenovo联想会员俱乐部社区wsc]#V
    ASP0105 Index out of ange 索引超出范围(一个数组索引超届)
    t#M)T,O:GS2s0ASP0106 Type Mismatch 类型不匹配(遇到的数据类型不能被处理)
    G:u!l$\/Q H0ASP0107 Stack Overflow 栈溢出(正在处理的数据超出了允许的范围) lenovo联想会员俱乐部社区-TF_#J;b
    ASP0115 Unexpected error 意外错误(外部对象出现可捕获的exception_name错误,脚
    '~.\%} i,s0本不能继续运行) lenovo联想会员俱乐部社区U!gT4Ey]ZT5`p
    ASP0177 Server.CreateObject Failed 服务器创建对象失败(无效的progid)
    z3x:fG [,`dl"ru0ASP0190 Unexpected error 意外错误(当释放外部对象,产生可捕获的错误) lenovo联想会员俱乐部社区r?[MS5]
    ASP0191 Unexpected error 意外错误(在外部对象的OnStartPage方法中产生可捕获的错 lenovo联想会员俱乐部社区[]t x0|"R%k([
    误) lenovo联想会员俱乐部社区~4e7cRX a{#m!U i
    ASP0192 Unexpected error 意外错误(在外部对象的OnEndPage方法中产生可捕获的错误
    5m \#AF^0发信人: longsi——现代速龙(时速200公里),信区:X-COM基地 lenovo联想会员俱乐部社区;L sl/B3oKB
    ASP0177 Server.CreateObject Failed 服务器创建对象失败(无效的progid)
    q ^~'CR0发信站: 侏罗纪公园(2050年2月31日18:30:00 星期六),站内信件 获的错误) lenovo联想会员俱乐部社区j4r/I+Q7~2x
    ASP0191 Unexpected error 意外错误(在外部对象的OnStartPage方法中产生可捕获的错 lenovo联想会员俱乐部社区#Mu*N]8oQ
    误)
    }oE:d0JY$k+e0ASP0192 Unexpected error 意外错误(在外部对象的OnEndPage方法中产生可捕获的错误
    :oj.d Jd ['E$yD\0) lenovo联想会员俱乐部社区6A'iDz!C.N?]1`E+I
    ASP0193 OnStartPage Failed 在外部对象的OnStartPage方法中产生错误 lenovo联想会员俱乐部社区1F;iE]5O!~*o9LZ
    ASP0194 OnEndPage Failed 在外部对象的OnEndPage方法中产生错误
    }e7w gzuD0G0ASP0240 scrīpt Engine Exception 脚本引擎从object_name对象中抛出exception_anme lenovo联想会员俱乐部社区$KR&O(q*Al
    异常
    |\wC'?9o}4u0a0ASP0241 CreateObject Exception object_name 对象的CreatObject方法引起了excepti
    ._Dy/@/K"U}M3QFXk0on_name异常
    1})P"Ybsn0ASP0242 Query OnStartPage nterface 查询对象Object_name的OnsException
    I/^9G^:Y2sf\!c0
    ioga5@6L0********************************************** lenovo联想会员俱乐部社区%_9WTYk7~y
    Jscrīpt 运行时错误
    (z^&C)l[~0Jscrīpt 运行时错误是指当 Jscrīpt 脚本试图执行一个系统不能运行的动作时导致的错 lenovo联想会员俱乐部社区h l/mL4H9XxU1F
    误。当正在运行脚本、计算变量表达式、或者正在动态分配内存时出现Jscrīpt 运行时 lenovo联想会员俱乐部社区uN.dP%I l
    错误时。 lenovo联想会员俱乐部社区:O%Z[+n crD
    以下是76个运行时错误 lenovo联想会员俱乐部社区zV4K C^su:nD z\+n
    lenovo联想会员俱乐部社区!svGu^ y
    错误号 描述 lenovo联想会员俱乐部社区8s;{G7{9jL
    十进制 十六进制 说明
    M8]5C9mb.d.GqR1M6Jok05 800A0005 非法过程调用或参数 lenovo联想会员俱乐部社区:F E2^/TA{!E6p
    6 800A0006 溢出 lenovo联想会员俱乐部社区5F9|9Y;hd$j6X+V&c%[n
    7 800A0007 内存不足 lenovo联想会员俱乐部社区y Y,c0?FX7B
    9 800A0009 下标超界
    5D^S]s(A)Gu010 800A000A 此数组被固定或临时锁定 lenovo联想会员俱乐部社区 Z}:p zC] E[
    11 800A000B 零除错误
    Ejo*u7B*JG013 800A000D 类型失配 lenovo联想会员俱乐部社区~M:r V3U6F.c M
    14 800A000E 串空间不足 lenovo联想会员俱乐部社区_@g,\0S
    17 800A0011 不能执行所请求的操作 lenovo联想会员俱乐部社区mY }9r@
    28 800A001C 栈空间不足
    0K1dr/^_035 800A0023 子过程或函数未找到 lenovo联想会员俱乐部社区&}7`fhUL
    48 800A0030 装载DLL出错 lenovo联想会员俱乐部社区-Q~L7D*c-^BFC.l
    51 800A0033 内部出错
    .J;r/FtG C052 800A0034 坏文件名或数 lenovo联想会员俱乐部社区8v y ?Hu&H5s {0E8]
    53 800A0035 文件未找到
    | |)I*F,FxDN5M054 800A0036 坏文件模式 lenovo联想会员俱乐部社区&J!i)Cw0]&R_
    55 800A0037 文件已经打开
    q8c%e/U`+tQZ057 800A0039 设备I/O错误
    Bl c8S9~ Z058 800A003A 文件已经存在
    as(i^Q*y061 800A003D 磁盘空间已满 lenovo联想会员俱乐部社区i~-GgA!WQ$z
    62 800A003E 输入超出文件尾
    `?[x.Ng067 800A0043 文件太多 lenovo联想会员俱乐部社区/M{]4w1K-~#uB
    68 800A0044 设备不可用 lenovo联想会员俱乐部社区o3[#n"c0jx[0z c
    70 800A0046 权限禁用
    C,d LS]071 800A0047 磁盘未准备好 lenovo联想会员俱乐部社区;f(qH tA'P
    74 800A004A 不能用不同的驱动重命名 lenovo联想会员俱乐部社区g U$U1P+z
    75 800A004B 路径/文件访问错误 lenovo联想会员俱乐部社区5x:i3cBI?!w7t;x Vf
    76 800A004C 路径未找到 lenovo联想会员俱乐部社区&Z? E7p }"f
    91 800A005B 对象变量或With块变量未设置
    dtQ)`$d0p092 800A005C For循环未初始化 lenovo联想会员俱乐部社区 @C ?z8i3J?
    94 800A005E Null使用无效
    E&iz G2uw1l7CA0322 800A0042 不能建立所需的临时文件 lenovo联想会员俱乐部社区!W['q(w0r4{eg J$g X
    424 800A01A8 需要对象 lenovo联想会员俱乐部社区-vf z&A*\i
    429 800A01A9 Automation服务器不能建立对象
    *u3mo7a/C K.pC0430 800A01AE 类不支持Automation
    vtg0r~n0U0432 800A01B0 在Automation操作中找不到文件名或类名
    |2ZT8{M[K}S0438 800A01B6 对象不支持这个属性或方法
    1D0t'[Ib`S0440 800A01B8 Automation错误
    2d%j"I6`5im*]/zPF9`0445 800A01BD 对象不支持这个动作 lenovo联想会员俱乐部社区Z7cL:uuJW'w-E8y
    446 800A01BE 对象不支持指定的参数
    sL#rA"Afg0447 800A01BF 对象不支持当前区域设置 lenovo联想会员俱乐部社区,j3OB;idK%j)w
    448 800A01C0 指定的参数未找到
    _/v'[6OX4R5h5e0449 800A01C1 参数不可选
    C#X @F8}t:hr0450 800A01C2 错误的参数数目或非法属性分配 lenovo联想会员俱乐部社区4}/C*um ? G OA3h})C
    451 800A01C3 对象不是一个集合 lenovo联想会员俱乐部社区l*{#w-|*gN6p e
    453 800A01C5 指定的dll函数未找到
    p8X-y&?t| A4Pv0gk*k.@0458 800A01CA 变量使用了一个Jscrīpt不支持的Automation类型 lenovo联想会员俱乐部社区_Q,c,^? e"m&Q
    462 800A01CE 远程服务器机器不存在或不可用 lenovo联想会员俱乐部社区+v5H9g.AS(f!\ }B/iyt
    501 800A01F5 不能分配给变量 lenovo联想会员俱乐部社区'{"CD&hD~$[oa,Y x
    502 800A01F6 对象对于脚本不安全
    4q2dJ3w h h&R%N0503 800A01F7 对象对于初始化不安全
    ,~nd4O5RKk$} I0504 800A01F8 对象对建立不安全 lenovo联想会员俱乐部社区!L(UKI+N@
    5000 800A1388 不能分配给“this” lenovo联想会员俱乐部社区Y L zu"nN
    5001 800A1389 需要 Number 类型
    )U8Td9MS8gb05002 800A138A 需要 Function 对象
    bY0G |2pP/J$g05003 800A138B 不能给函数返回值赋值
    &_g B8r;H I#QW05004 800A138C 不能索引对象 lenovo联想会员俱乐部社区e0]ei%HR ^W[
    5005 800A138D 需要 String
    M3_w t}-B1u5s05006 800A138E 需要 Date 对象
    Q5_}o5UM'B05007 800A138F 需要 Object 类型 lenovo联想会员俱乐部社区 d7K Itv\WEd8y
    5008 800A1390 非法赋值
    F |Gp&]3Na3U05009 800A1391 未定义标识符 lenovo联想会员俱乐部社区*lKI"p_
    5010 800A1392 需要 Boolean lenovo联想会员俱乐部社区H"Qd|A
    5011 800A1393 不能执行来自一个自由脚本的代码
    6Q;zP2n8T `;cn i"l:ta05012 800A1394 需要对象的成员 lenovo联想会员俱乐部社区'H'M g'wzj V
    5013 800A1395 需要 VBArray
    y:k;|K;sUi05014 800A1396 需要 Jscrīpt 对象
    LI0FM.i$F"k,F:z05015 800A1397 需要 Enumerator 对象
    t(?-Wi*YrK(m R05016 800A1398 需要正则表达式对象
    YpQ&XY05017 800A1399 正则表达式语法错误 lenovo联想会员俱乐部社区kB+EvCl#H/i.v
    5018 800A139A 未预期的限定符 lenovo联想会员俱乐部社区(dO'Jq M[)c5U/i
    5019 800A139B 正则表达式中缺少“]”
    p;uB0|N,Z05020 800A139C 正则表达式中缺少“)” lenovo联想会员俱乐部社区`e:I4S*U
    5021 800A139D 字符集范围无效
    L%X&I}n7II$]4c9z B05022 800A139E 异常抛出,但无法抓住
    ,\nGEq Jv05023 800A139F 函数没有合法的 Prototype (原型)对象 lenovo联想会员俱乐部社区Tm7WH2D~
    5024 800A13A0 待解码的 URI 包含有非法字符 lenovo联想会员俱乐部社区"oR Q"L|-V2b
    5025 800A13A1 待解码的 URI 编码非法 lenovo联想会员俱乐部社区4q1n;Wt9{mE Sy5]
    5026 800A13A2 小数部分的位数越界
    4l;h7EDhR!P-K05027 800A13A3 精度越界
    CE.w4o#eip(H8F05028 800A13A4 需要 Array 或 arguments 对象 lenovo联想会员俱乐部社区bBA1?!?1i O{
    5029 800A13A5 数组长度必须为一有限正整数 lenovo联想会员俱乐部社区f{| p^N
    5030 800A13A6 必须赋给数组长度一个有限正数
    #rVCD0GN)h0
    8k2QQ(a~a}0******************************************************* lenovo联想会员俱乐部社区#?3w6raEP
    jscrīpt错误代码及相应解释大全 lenovo联想会员俱乐部社区%XS+j2|2[#RX R g
    Jscrīpt 语法错误
    v4WO*G x6Cw0Jscrīpt 语法错误是指当 Jscrīpt 语句违反了 Jscrīpt 脚本语言的一条或多条语法规
    V6U:q)hLk~w0则时导致的错误。Jscrīpt 语法错误发生在程序编译阶段,在开始运行该程序之前。( lenovo联想会员俱乐部社区^`#i7su7Z
    错误发生在开发过程中),以下是32个语法错误 lenovo联想会员俱乐部社区"Sr&K,x5eB
    lenovo联想会员俱乐部社区fh0R#D-R#tY [+j
    错误号 描述 lenovo联想会员俱乐部社区P|h?+U
    十进制 十六进制 说明 lenovo联想会员俱乐部社区X7s'sx{#pcX a&V
    1001 800A03E9 内存不足 lenovo联想会员俱乐部社区5`t%s2[2dP?Y r
    1002 800A03EA 语法错误 lenovo联想会员俱乐部社区Y.CA%TYv%F+zH.k
    1003 800A03EB 需要“:” lenovo联想会员俱乐部社区|,vg] } W.H
    1004 800A03EC 需要“;” lenovo联想会员俱乐部社区4MFVm?4^A W
    1005 800A03ED 需要“(”
    +k$uL7{)`+H;u01006 800A03EE 需要“)”
    ee OZAc%i01007 800A03EF 需要“]”
    *U'f.JLsZ01008 800A03F0 需要“{”
    f1MIp@{oa01009 800A03F1 需要“}” lenovo联想会员俱乐部社区~%\FMq"ZuQ
    1010 800A03F2 需要标识符 lenovo联想会员俱乐部社区.d/F9}/uMb$K!rs`+Xb
    1011 800A03F3 需要“=” lenovo联想会员俱乐部社区-U1xc3O kh5e/`
    1012 800A03F4 需要“/”
    5`6M,~a ?lv9b(Cya01013 800A03F5 无效数 lenovo联想会员俱乐部社区$`A5@R#R HR FuF
    1014 800A03F6 非法字符 lenovo联想会员俱乐部社区(a,d9S&kD&c:`2]0@[
    1015 800A03F7 字符串常数未结束 lenovo联想会员俱乐部社区`VT6bz
    1016 800A03F8 注释未结束
    O$B2q X1^*m`X01018 800A03FA 函数外有 ’return’ 语句
    $WDu,O(^L8C(P01019 800A03FB 在循环外不能有“break” lenovo联想会员俱乐部社区s-z oYW{6?:o i
    1020 800A03FC 在循环外不能有“continue”
    "@a-K-_k5]XD01023 800A03FF 需要十六进制数
    8Z4GJ.n4IC01024 800A0400 需要“while” lenovo联想会员俱乐部社区6Kkw)L }nI-O+Fl
    1025 800A0401 标签定义重复 lenovo联想会员俱乐部社区D5\x5j/BI6r.m
    1026 800A0402 未找到标签
    /]&`j"t.i01027 800A0403 一条 “switch” 语句中只能有一个 “default”
    a(R2wB `3_01028 800A0404 需要标识符、字符串或者数字 lenovo联想会员俱乐部社区A&p]nU){'Qn3`
    1029 800A0405 需要“@end”
    pq;J~o2e#]01030 800A0406 条件编译已关闭
    2UjB5[k zO V;F)dB01031 800A0407 需要常数
    C-~%\2n%o\2N7UF01032 800A0408 需要“@”
    :] Zz[2U6SH+d01033 800A0409 需要“catch” lenovo联想会员俱乐部社区~!SX.l+H2b
    1034 800A040A 需要“var”
    u)?O-K p.Z"_] ~01035 800A040B “Throw”的后面必须跟有一个表达式,且在同一源代码行上
    D+~,A7J.C fwpi0lenovo联想会员俱乐部社区J@(N#t6Q5PO8s
    ************************************************************************ lenovo联想会员俱乐部社区ph Wa:yq3ds}
    VBscrīpt 运行时错误 lenovo联想会员俱乐部社区 qi9Y"JM+D
    如果 VBscrīpt 脚本执行系统无法实施的操作,则会产生 VBscrīpt 运行时错误。只有
    P(@z4q @*bT#{0在运行脚本、为变量表达式赋值或 lenovo联想会员俱乐部社区-pE d f U3x
    分配内存时,才会产生 VBscrīpt 运行时错误。 以下是65个运行时错误:
    BE!k&z+T.YF}0错误编号 描述 lenovo联想会员俱乐部社区3| w I-M.r]
    十进制 十六进制 说明 lenovo联想会员俱乐部社区{Q'B.zDEL
    5 800A0005 无效过程调用或参数
    6k1}3eP1Qe:N06 800A0006 溢出
    RuFg5N uy07 800A0007 内存不足
    Y-E3gf-s.E09 800A0009 下标越界
    H8?dz.h4_\ _6c3P010 800A000A 该数组为定长的或临时被锁定
    &vsy2A9ql&qS011 800A000B 被零除 lenovo联想会员俱乐部社区%y:Zei:`+UU
    13 800A000D 类型不匹配 lenovo联想会员俱乐部社区RW%A4Dp!y7M5]
    14 800A000E 字符串空间溢出
    -HSm-D~'j*W017 800A0011 无法执行请求的操作 lenovo联想会员俱乐部社区(e&l)^/oB C[)W8yx
    28 800A001C 堆栈溢出 lenovo联想会员俱乐部社区7T3MH#X T6pF
    35 800A0023 未定义 Sub 或 Function
    8{'Y B&cK048 800A0030 加载 DLL 错误
    H4T2z'|0a051 800A0033 内部错误 lenovo联想会员俱乐部社区)Eu fy;w9Ay;S*L
    52 800A0034 坏文件名或数
    !y4d%|c|SMB8M053 800A0035 文件未找到 lenovo联想会员俱乐部社区.u x,SWFE z)R8q3}l
    54 800A0036 坏文件模式 lenovo联想会员俱乐部社区I%NlHd6O$L f
    55 800A0037 文件已经打开 lenovo联想会员俱乐部社区!tK]!Rr&gUvH
    57 800A0039 设备I/O错误
    .b3V1|n-a7ja058 800A003A 文件已经存在 lenovo联想会员俱乐部社区Oi$s9o$H _^&Xy,e"y
    61 800A003D 磁盘空间已满 lenovo联想会员俱乐部社区 vJH%xoR__C
    62 800A003E 输入超出文件尾
    _+Y-EC ]067 800A0043 文件太多 lenovo联想会员俱乐部社区or:d nO)ps
    68 800A0044 设备不可用 lenovo联想会员俱乐部社区b)~aP"`W3A9NR
    70 800A0046 权限禁用
    lc&V ^:E^y071 800A0047 磁盘未准备好
    [-^:~4S W*V z074 800A004A 不能用不同的驱动器重新命名 lenovo联想会员俱乐部社区^3A [#Xfg
    75 800A004B 路径/文件访问错误
    vLC$^oE076 800A004C 路径未找到
    UNw ~6F E u6DG091 800A005B 未设置对象变量 lenovo联想会员俱乐部社区g{P5Ka2@
    92 800A005C For 循环未初始化 lenovo联想会员俱乐部社区J6{a!Lk [~
    94 800A005E 非法使用 Null
    Fv&Nqq7^)O"k0322 800A0142 不能建立所需临时文件 lenovo联想会员俱乐部社区B b6i},b8l
    424 800A01A8 需要对象
    'k$|#YxQ*Sr/GF0429 800A01AD ActiveX 部件无法创建对象
    :` G ^ tu#I+u{0430 800A01AE 类不支持自动化
    -o ~e-g0D%l6f({rGA7^0432 800A01B0 在自动化操作中未找到文件名或类名 lenovo联想会员俱乐部社区?8d2j2iL8J{
    438 800A01B6 对象不支持该属性或方法
    6T2Ml[1Oc,\*iaT0440 800A01B8 Automation错误
    _sZ'_9V0445 800A01BD 对象不支持此操作
    %g w;XsI0446 800A01BE 对象不支持指定的参数 lenovo联想会员俱乐部社区x+~+vD&\9c&qM
    447 800A01BF 对象不支持当前的区域设置
    &? Z!g!}J5E0448 800A01C0 未找到命名参数 lenovo联想会员俱乐部社区 Z@Ia8^
    449 800A01C1 参数不可选 lenovo联想会员俱乐部社区.u-v'c-j"n#S
    450 800A01C2 错误的参数个数或无效的参数属性值 lenovo联想会员俱乐部社区:n4\|;B&aH"\9g`*L#l(}
    451 800A01C3 对象不是一个集合
    +OrpmlS0453 800A01C5 指定的dll函数未找到 lenovo联想会员俱乐部社区R2L&V*a{d
    455 800A01C7 代码源锁错误
    B-K1ro*i,j0~].[r0457 800A01C9 这个键已经是本集合的一个元素关联 lenovo联想会员俱乐部社区Ml!m"hl(kKo'h9i
    458 800A01CA 变量使用了一个 VBscrīpt 中不支持的自动化(Automation)类型 lenovo联想会员俱乐部社区?-}K;R7V2n
    462 800A01CE 远程服务器不存在或不能访问
    Hr }YCo0]%QV0481 800A01E1 无效图片
    VMN;Iv{ y?0500 800A01F4 变量未定义 lenovo联想会员俱乐部社区o,]a oVu |p
    501 800A01F5 违法的分配 lenovo联想会员俱乐部社区q6U;m o V"L
    502 800A01F6 脚本对象不安全 lenovo联想会员俱乐部社区!m?IU{0sQ~
    503 800A01F7 对象不能安全初始化
    OI3?o"w"S@"t0504 800A01F8 对象不能安全创建 lenovo联想会员俱乐部社区9nR2p7t)p:l6jxY7nn
    505 800A01F9 无效的或不合格的引用
    +RM2LN7eKp#l0506 800A01FA 类未被定义
    !W9f @} vg:s0507 800A01FB 发生异常
    )Z6yv!v7OKE Xmw0Si"P05016 800A1398 需要正则表达式对象 lenovo联想会员俱乐部社区/_6_H3t0U0^%e
    5017 800A1399 正则表达式中的语法错误 lenovo联想会员俱乐部社区Na3E#YK7Eh
    5018 800A139A 错误的数量词
    &F_5WRgD?-]05019 800A139B 在正则表达式中需要 ']' lenovo联想会员俱乐部社区XJE,Aq4c/m
    5020 800A139C 在正则表达式中需要 ')' lenovo联想会员俱乐部社区Omx,}7mJSg#Z
    5021 800A139D 字符集越界
    F3qFBJm)Mc032811 800A802B 元素未找到 lenovo联想会员俱乐部社区(JF8Ta)a [7G
    lenovo联想会员俱乐部社区5Os#Q `KI5x m
    **************************************************************
    FQTqHC0vbscrīpt错误代码及对应解释大全 lenovo联想会员俱乐部社区G%E%S#l O?
    VBscrīpt 语法错误 lenovo联想会员俱乐部社区7?b3I`.cY fj k%A@
    如果 VBscrīpt 语句结构违反了一个或多个 VBscrīpt 脚本语言语法规则,就会产生
    %x)D9U7_ppx4b0VBscrīpt 语法错误。 lenovo联想会员俱乐部社区y0x)\E*N a Y9_
    错误通常在执行程序前,编译程序时产生。 以下是53个语法错误: lenovo联想会员俱乐部社区 j8K4B?|rXE
    错误编号 描述 lenovo联想会员俱乐部社区]t(S a!V"y g
    十进制 十六进制 说明 lenovo联想会员俱乐部社区x(\}'U$L&Sa/d d
    1001 800A03E9 内存不足 lenovo联想会员俱乐部社区IY~ ]s)yr^
    1002 800A03EA 语法错误 lenovo联想会员俱乐部社区l0cPN+uZV4Q
    1003 800A03EB 缺少“:” lenovo联想会员俱乐部社区$]\ t;LI)oW$a9t
    1005 800A03ED 需要 '(' lenovo联想会员俱乐部社区{H-mJ ~C` f
    1006 800A03EE 需要 ')'
    }"zN7w2T5XB8B;z G`g01007 800A03EF 缺少“]”
    TFUY|01010 800A03F2 需要标识符 lenovo联想会员俱乐部社区 a8w.Uy?
    1011 800A03F3 需要 '='
    $QPrBf-UJB01012 800A03F4 需要 'If' lenovo联想会员俱乐部社区S9fL;] g$d
    1013 800A03F5 需要 'To'
    I3G9Y-r.{Z7}01014 800A03F6 需要 'End'
    rz1GWX"G4iQpK)oF01015 800A03F7 需要 'Function'
    +UD*B7jx-QDdy8{9L&t01016 800A03F8 需要 'Sub' lenovo联想会员俱乐部社区h?_4R8r-vA
    1017 800A03F9 需要 'Then'
    \&esJ+M01018 800A03FA 需要 'Wend' lenovo联想会员俱乐部社区VU XW~"F/qz;z
    1019 800A03FB 需要 'Loop'
    !Y.kl0OZI.K`#n01020 800A03FC 需要 'Next'
    2z5B$[SH,i7Gw01021 800A03FD 需要 'Case'
    (bWly"B#ux_01022 800A03FE 需要 'Select'
    }+OKF#p:K?2hl01023 800A03FF 需要表达式
    C7Z:zQ%I$V/d01024 800A0400 需要语句
    &?0g,z'vW/Az01025 800A0401 需要语句的结束
    (O%ym%I g;{-_ x(Dnh`*c01026 800A0402 需要整数常数 lenovo联想会员俱乐部社区X%\%g*L#u{\
    1027 800A0403 需要 'While' 或 'Until' lenovo联想会员俱乐部社区*]9H*v;T8S
    1028 800A0404 需要 'While,'、 'Until,' 或语句未结束 lenovo联想会员俱乐部社区e skUo3B
    1029 800A0405 需要 'With'
    0~)Mm[*a4EC01030 800A0406 标识符太长 lenovo联想会员俱乐部社区&pl c;E%h p
    1031 800A0407 无效的数 lenovo联想会员俱乐部社区9W"TAoD'[d
    1032 800A0408 无效的字符 lenovo联想会员俱乐部社区7[B0D`$W
    1033 800A0409 未结束的串常量 lenovo联想会员俱乐部社区 GB.Lf~ kEU
    1034 800A040A 未结束的注释
    )Z+cbcXI%S$C2`c01037 800A040D 无效使用关键字 'Me' lenovo联想会员俱乐部社区8ZQ;JL[;H%?YM
    1038 800A040E 'loop' 没有 'do' lenovo联想会员俱乐部社区 R @k Nd)?ounhG
    1039 800A040F 无效 'exit' 语句 lenovo联想会员俱乐部社区6IR9{QB(M2z%TN
    1040 800A0410 无效 'for' 循环控制变量
    1m cD!N^!t%Z!A5A01041 800A0411 名称重定义 lenovo联想会员俱乐部社区qY|W _s_}
    1042 800A0412 必须为行的第一个语句
    %h^;\\7Rk01043 800A0413 不能赋给非Byval参数
    *e$C/G)o0N,`01044 800A0414 调用 Sub 时不能使用圆括号
    3To\K3Cajk01045 800A0415 需要文字常数
    x ]d)CbepUw01046 800A0416 需要 'In'
    :EK^k&LH&_[9p01047 800A0417 需要 'Class' lenovo联想会员俱乐部社区;z?J`x,i G
    1048 800A0418 必须在一个类的内部定义 lenovo联想会员俱乐部社区_ m`.D W1]5T5E
    1049 800A0419 在属性声明中需要 Let , Set 或 Get lenovo联想会员俱乐部社区:e j8[k4r*jG
    1050 800A041A 需要 'Property' lenovo联想会员俱乐部社区 B^0|9SL/]|9k
    1051 800A041B 参数数目必须与属性说明一致 lenovo联想会员俱乐部社区J&O[+b/vpIr&p
    1052 800A041C 在类中不能有多个缺省的属性/方法
    9t"P_~#}`%r01053 800A041D 类初始化或终止不能带参数 lenovo联想会员俱乐部社区[E7oRAFq@
    1054 800A041E Property Let 或 Set 至少应该有一个参数 lenovo联想会员俱乐部社区/X n.VBhf!m
    1055 800A041F 不需要的 'Next' lenovo联想会员俱乐部社区+z7qG"Qw
    1056 800A0420 只能在 ‘Property’ 或 ’Function’ 或 ’Sub’ 上指定 ’Default ’
    /UxE ^z {G01057 800A0421 说明 'Default' 必须同时说明 'Public' "
    'Q`eb%j'Fz2tG01058 800A0422 只能在 Property Get 中指定 'Default'
  • 手机软件MMI测试自动化工具设计思路

    2007-11-16 10:21:21

    手机软件MMI的自动化测试需要手机终端和计算机进行通讯,所以通讯方式可以选择串口或者蓝牙,鉴于稳定性和易用性,设计简单程度,串口通讯是非常简单的很容易实现的。

    然后自动化测试工具选择脚本语言的问题,我们可以选择VBscrīpt,Perl,Python,比较一下,Python比较强大,Nokia的一些工具就是python做脚本的。

    两者之间的通信机制:可以使用ATcommand进行通信,出了GSM标准支持的ATC,还要有手机专门自己的命令来支持远程终端操控手机。比如键盘控制,长按短按等。

    手机需要暴露一些接口,比如截图,文字识别,返回图像,文字等。这样可以做自动化验证,做到无人值守。这些均需要手机来支持。比如设计手机要有这样的接口 BOOL GetPicture(int top, int bottom, int right, int left, BITMAP & bitmap); 这样通过ATC发过来命令然后手机解析一下,得到top,bottom等信息,然后得到bitmap返回。文字识别需要python来完成,char* GetStringFromPic(Point pt, const Bitmap* bitmap); 我就用C++来表示了。这样在脚本里面就可以进行比较文字了。

    更进一步,支持录制脚本功能,比如按下某个键,串口信息,监听串口信息,这样脚本解析按下的键,然后判断在转译成脚本语言。Key();

    关于手机只需要支持识别ATC参数,然后传回要的结果,我想主要是通过图片来返回,因为这是模拟人工测试的原理,我按下某个键,就会出现什么结果,这样需要返回图片即可,然后脚本客户端需要对图片进行处理,要么进行比较图片内容,要么进行文字识别进行文字对比,这样可以实现测试自动化。

    前文已经把大致的手机需要提供的接口说了一下,再次总结一下:

    1.需要手机支持GSM07.07中规定(Optional)的键盘控制的命令at+ckpd
    2.需要手机支持一些特殊的ATC,比如传回手机当前图片,以便作比较。
    3.自动化测试的目的:能够替代人工实现大量手工难以完成的工作,重复性较强的工作,比如一些压力测试,存五百条通讯录等,删除等,考验手机内存释放时是否有内存泄露等等。二是能够完成大量的回归测试,易于维护等特点。

    思路:

    选择脚本语言:由于python使用很灵活而且具有强大的文本处理能力,且易于学习等特点,可以选用python作为脚本语言和实现语言。

    方式:

    比如定义def CCKEY()来完成发送CCKEY,也可以通过一个map文件来实现CCKEY--at+ckpd="c"这种方式,然后用户这边只是用譬如以下的命令:

    CenterKey()
    Key("#", 2)
    LongPress("#")
    PressKey("0")
    LSK()
    RSK()
    NaviUp()
    NaviDown()

      再加上python的控制流程,异常处理等,可以编出强大的易于维护的脚本来。

      手机方面的接口可以是GetImage(),然后通过脚本进行处理,这个可能需要很大的工作量,因为要么重新研究图像识别对比,文字识别等技术,要么购买组件等,即验证这一关也很难实现。

      在初期可以考虑人工来验证一些结果,比如图片对比结果,可以使用一些技术,比如蒙板等,得到一些异状图片,用户自己审阅一下,加入明显的由异样,就Fail,这样就不能自动,可以说是半自动化了。
  • eclipse

    2007-11-16 10:08:58

    http://www.bea.com/distros/eclipse.html eclipse下载地址 ,有中文插件。

    http://www.myeclipseide.com/Downloads-index-req-getit-lid-83.html

    myeclipse下载安装地址

  • 测试基础知识

    2007-09-12 10:08:54

    软件开发过程及软件质量保证
    1.软件开发过程的几个主要阶段:
    1)定义。明确开发的目标,软件的需求。
    2)计划。制订软件开发所涉及到的计划。
    3)设计。设计、编码、编写文档等,完成要求的软件特性。
    4)稳定化。主要是测试和缺陷修复,确保软件的质量。
    5)安装。安装、提交完成的软件,为客户提供运行环境。
    2.几种常用的软件生命周期模型:
    1)瀑布模型。
    2)原型模型。
    3)增量模型。
    4)螺旋模型。
    从软件测试人员的角度来看软件开发过程,需要注意的是:测试贯穿在整个开发过程中,而不是在某个阶段集中地做一下测试而其它阶段不用理会测试工作。

    一个软件之所以被认为为质量优秀,是它内在具备了这样一些特性:
    满足用户的需求;
    合理进度、成本、功能关系;
    具备扩展性和灵活性,能够适应一定程度的需求变化;
    能够有效地处理例外的情况;
    保持成本和性能的平衡。

    软件质量保证(Software Quality Assurance-----SQA)是为了确保软件开发过程和结果符合预期的要求而建立的系列规程,以及依照规程和计划采取的一系列活动及其结果评审。

    软件质量保证的活动主机包括:
    技术方法的就用;
    正式技术评审的实施;
    软件测试;
    标准的执行;
    修改的控制;
    度量;
    记录和记录保存。

    软件错误的定义:软件错误是软件产品中存在的导致期望的运行结果和实际结果间出现差异的一系列问题,这些问题包括故障、失效、缺陷。


    软件测试:
    软件测试就是为了发现软件中存在的错误而分析或执行程序的过程。具体地说,软件测试是分析程序或根据软件开发各阶段的规格说明和各程序的内部结构而精心设计出一批测试用例,并利用测试用例来运行程序,以发现程序错误的过程。

    软件测试有两个基本的功能:验证(Verification)和确认(Validation)。
    验证指保证软件正确地实现了特写功能的一系列活动。
    确认指保证最终的产品满足系统需求。
    通俗的说:验证保证产品的正确性;确认保证生产了正确的产品。

    软件测试人员应该至少具备以下两个关键领域方面的知识:
    1)软件测试技术;
    2)被测应用程序及其相关应用领域知识。

    理解以下的描述:
    测试能提高软件的质量,但是提高质量不能依赖测试;
    测试只能证明错误存在,不能证明错误不存在;
    测试的主要困难是不知道该如何进行有效地测试,也不知道什么时候能够放心的结束测试;
    每个程序员都应当测试自己的程序(份内事),但不能作为程序已通过测试的依据(所以项目需要独立的测试人员);
    80-20原则:80%的错误聚集在20%的模块中,经常出错的模块改错后还是会经常出错;
    测试应当循序渐进,不要企图一次性做完。"欲速则不达"。

    测试人员的目标和主要工作:
    目标:(1).基本目标是发现软件错误;
    (2).要尽可能早的找出软件错误;
    (3).必需确保找出的软件错误得以关闭。

    主要工作:
    1)规划测试任务
    2)设计测试(包括编写测试用例等等)
    3)建立一个合适的测试环境
    4)评估、获取、安装和配置自动测试工具
    5)执行测试
    6)撰写适当的测试文档

    软件测试的分类
    1.从是否需要执行被测试软件的角度分:有静态测试和动态测试。
    2.从测试是否针对软件结构和算法的角度分类分:白盒测试和黑盒测试。
    3.从测试的不同阶段分:单元测试、集成测试、系统测试和验收测试四个阶段。
    其中系统测试有:功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等等。

    针对某些功能作用的测试:
    回归测试:指错误被修正后或软件功能、环境发生变化后进行的重新测试。
    功能测试:测试软件的功能是否符合功能性需求,通常采用黑盒测试方式。
    负载测试:测试软件系统的最大负载,超出此负载软件有可能会失常。
    压力测试:与负载测试差不多,叫法不同。
    易用性测试:测试软件是否易用,主观性比较强。一般要根据用户的反馈信息来评价。
    安装与反安装测试:测试软件在"全部、部分、升级"等状况下的安装/反安装过程。
    恢复测试:测试系统从故障中恢复的能力
    安全性测试:测试系统防止非法侵入的能力。
    兼容性测试:测试系统与其它软件、硬件兼容的能力。
    内存泄漏测试:测试软件在运行过程中是否会造成内存泄漏。
    比较测试:通过与同类产品比较,考察该产品的优点、缺点。
    Alpha测试:一种先期的用户测试,此时系统刚刚开发完成。
    Beta测试:一种后期的用户测试,此时系统已经通过内部测试,大部分错误已经改正,即将正式发行。同Alpha测试一样都由用户进行,场地不同,Alpha测试一般是把用户请到开发方的场地来测试,Beta测试是指在一个或多个用户的场所进行测试。

    测试工作的主要步骤:
    1)测试计划:测试人员要首先对需求进行分析,最终定义一个测试集合。
    2)测试设计与开发:根据软件需求、说明书完成测试用例设计并编写必要的测试驱动程序。
    3)执行测试:需要做的工作是,建立测试环境;根据前面编写的测试计划和测试用例运行测试;记录测试结果;报告软件缺陷;跟踪软件缺陷直至其被处理;分析测试结果


    PS 测试工程师职业素质
    1)责任心
    2)学习能力
    3)怀疑精神
    4)沟通能力
    5)专注力
    6)洞察力
    7)团队精神
    8)注重积累

  • 测试计划模版

    2007-09-05 16:07:06

    1目的
    测试计划”文档有助于实现以下目标:

    确定现有项目的信息和应测试的软件构件。
    列出推荐的测试需求(高级需求)。
    推荐可采用的测试策略,并对这些策略加以说明。
    确定所需的资源,并对测试的工作量进行估计。
    列出测试项目的可交付元素


    1. 2
    背景

    [
    对测试对象(构件、应用程序、系统等)及其目标进行简要说明。需要包括的信息有:主要的功能和性能、测试对象的构架以及项目的简史。]
    1.3
    范围

    [
    描述测试的各个阶段(例如,单元测试、集成测试或系统测试),并说明本计划所针对的测试类型(如功能测试性能测试)。
    简要地列出测试对象中将接受测试或将不接受测试的那些性能和功能。
    如果在编写此文档的过程中做出的某些假设可能会影响测试设计、开发或实施,则列出所有这些假设。
    列出可能会影响测试设计、开发或实施的所有风险或意外事件。
    列出可能会影响测试设计、开发或实施的所有约束。


    2.        测试参考文档和测试提交文档
    2.1
    测试参考文档
    下表列出了制定测试计划时所使用的文档,并标明了各文档的可用性:
    文档(版本/日期)        已创建或可用        已被接收或已经过复审        作者或来源        备注
    可行性分析报告        是□ 否□        是□ 否□               
    软件需求定义        是□ 否□        是□ 否□
                   
    软件系统分析(STD,DFD,CFD,DD        是□ 否□        是□ 否□
                   
    软件概要设计        是□ 否□        是□ 否□
                   
    软件详细设计        是□ 否□        是□ 否□
                   
    软件测试需求        是□ 否□        是□ 否□
                   
    硬件可行性分析报告        是□ 否□        是□ 否□
                   
    硬件需求定义        是□ 否□        是□ 否□
                   
    硬件概要设计        是□ 否□        是□ 否□
                   
    硬件原理图设计        是□ 否□        是□ 否□
                   
    硬件结构设计(包含PCB        是□ 否□        是□ 否□
                   
    FPGA
    设计        是□ 否□        是□ 否□
                   
    硬件测试需求        是□ 否□        是□ 否□
                   
    PCB
    设计        是□ 否□        是□ 否□
                   
    USB
    驱动设计        是□ 否□        是□ 否□
                   
    Tuner BSP
    设计        是□ 否□        是□ 否□
                   
    MCU
    设计        是□ 否□        是□ 否□
                   
    模块开发手册        是□ 否□        是□ 否□
                   
    测试时间表及人员安排        是□ 否□        是□ 否□
                   
    测试计划        是□ 否□        是□ 否□
                   
    测试方案        是□ 否□        是□ 否□
                   
    测试报告        是□ 否□        是□ 否□
                   
    测试分析报告        是□ 否□        是□ 否□
                   
    用户操作手册        是□ 否□        是□ 否□
                   
    安装指南        是□ 否□        是□ 否□
                   
    2.2
    测试提交文档

    [
    下面应当列出在测试阶段结束后,所有可提交的文档]
    3.
    测试进度

    测试活动        计划开始日期        实际开始日期        结束日期
    制定测试计划                       
    设计测试
                           
    集成测试
                           
    系统测试
                           
    性能测试
                           
    安装测试
                           
    用户验收测试
                           
    对测试进行评估
                           
    产品发布                       


  • (五)使用 Rational Application Developer V6.0 开发、测试并部署 Web 服务

    2007-09-05 09:44:52

    转贴:http://www.51testing.com/?action_viewnews_itemid_17095.html

    因为我在一个 Java 类中设计了这个 Web 服务,所以我将说明如何用自底向上方案创建这个 Web 服务。这就意味着您将创建 Web 服务的服务器端构件、WSDL 文件和 Web 服务的客户端构件。代理类是客户程序的一部分,并且 GSTC 将会调用该类来存取服务。

            现在创建 MortgageCalculator Web 服务,并且您将在操作中详细了解 Web 服务向导。首先,通过选择 File > New > Other > Web > Dynamic web project 在 Web 项目中创建 Mortgage 类。

            在 Java Source 目录下,通过选择 File > New > Other > Java > Class 来新建 Java 类,或者,如果您已经拥有这些类,就通过选择 File > Import 将这些类导入。

            一旦完成了这些步骤,这些类就应当出现在 Web 项目中,在 Java Source 文件夹里。如 图 18 所示。下一个步骤是选择 MortgageCalculator Java 文件,因为这是服务类。选择 File > New > Other > Web services。

     

            图 18: Java 服务类
                           

            查看 图 19 您会看到七个 Web 服务选项是可用的。 必须选择 Unit Test UDDI 项以发现新的 Web 服务。 Web Service Client 项允许您创建客户端构件(假设已经部署了 Web 服务)。在本例中用到的选项, Web Service,创建并部署服务,并且提供选项来创建客户程序并部署 GSTC。

     

            图 19:Web 服务向导入口

                           

            点击 Next 按钮,您会见到 Web 服务页面,如 图 20 所示。确保选取了 Generate a proxy 和 Test the Web service 项。并且选择 Overwrite files without warning项。 如果确信在 Web 服务首选项中是 GSTC 默认的 Web 服务测试客户程序,就点击 Finish 按钮。 如果不确信,则点击 Next 直到您达到了客户程序测试页并从测试工具下拉框中选择 Web Service JSP page,如 图 21 所示。

     

            图 20: Web 服务页面
                
                           

            图 21: Web 服务客户程序测试页

                          

            在点击 Finish 之后,应该出现一个通知该示例不支持数组类型的警告。在 图 22可以见到该错误。特别是,GSTC 不支持数组类型的输入。

     

            图 22: 警告:GSTC 不支持 double[]

                           

            这个通知表明在生成 GSTC 时会排除数组类型的属性。如果查看 MortgageInfo 中的代码(在 图 16 中)会看到两个属性:income 和 bills。这两个导致 GSTC 出现问题的属性都是 double 型数组。因为 income 和 bills 是计算中用到的最必要的部分,所以不能使用数组是很糟糕的。幸运的是有办法解决,您可以自定义 JSP 页来适应您的需求。点击警告对话框上的 OK 按钮,然后 MortgageCalculator GSTC 将生成。 

  • sql语句

    2007-09-03 16:08:16

    一、基础
    1、说明:创建数据库
    CREATE DATABASE database-name
    2、说明:删除数据库
    drop database dbname
    3、说明:备份sql server
    --- 创建 备份数据的 device
    USE master
    EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
    --- 开始 备份
    BACKUP DATABASE pubs TO testBack
    4、说明:创建新表
    create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
    根据已有的表创建新表:
    A:create table tab_new like tab_old (使用旧表创建新表)
    B:create table tab_new as select col1,col2... from tab_old definition only
    5、说明:删除新表
    drop table tabname
    6、说明:增加一个列
    Alter table tabname add column col type
    注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。
    7、说明:添加主键: Alter table tabname add primary key(col)
    说明:删除主键: Alter table tabname drop primary key(col)
    8、说明:创建索引:create [unique] index idxname on tabname(col....)
    删除索引:drop index idxname
    注:索引是不可更改的,想更改必须删除重新建。
    9、说明:创建视图:create view viewname as select statement
    删除视图:drop view viewname
    10、说明:几个简单的基本的sql语句
    选择:select * from table1 where 范围
    插入:insert into table1(field1,field2) values(value1,value2)
    删除:delete from table1 where 范围
    更新:update table1 set field1=value1 where 范围
    查找:select * from table1 where field1 like '%value1%' ---like的语法很精妙,查资料!
    排序:select * from table1 order by field1,field2 [desc]
    总数:select count as totalcount from table1
    求和:select sum(field1) as sumvalue from table1
    平均:select avg(field1) as avgvalue from table1
    最大:select max(field1) as maxvalue from table1
    最小:select min(field1) as minvalue from table1
    11、说明:几个高级查询运算词
    A: UNION 运算符
    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    B: EXCEPT 运算符
    EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。
    C: INTERSECT 运算符
    INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。
    注:使用运算词的几个查询结果行必须是一致的。
    12、说明:使用外连接
    A、left outer join:
    左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
    SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    B:right outer join:
    右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
    C:full outer join:
    全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
    二、提升
    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用)
    法一:select * into b from a where 1<>1
    法二:select top 0 * into b from a
    2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用)
    insert into b(a, b, c) select d,e,f from b;
    3、说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用)
    insert into b(a, b, c) select d,e,f from b in '具体数据库' where 条件
    例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
    4、说明:子查询(表名1:a 表名2:b)
    select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
    5、说明:显示文章、提交人和最后回复时间
    select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
    6、说明:外连接查询(表名1:a 表名2:b)
    select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
    7、说明:在线视图查询(表名1:a )
    select * from (SELECT a,b,c FROM a) T where t.a > 1;
    8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括
    select * from table1 where time between time1 and time2
    select a,b,c, from table1 where a not between 数值1 and 数值2
    9、说明:in 的使用方法
    select * from table1 where a [not] in ('值1','值2','值4','值6')
    10、说明:两张关联表,删除主表中已经在副表中没有的信息
    delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
    11、说明:四表联查问题:
    select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
    12、说明:日程安排提前五分钟提醒
    SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5
    13、说明:一条sql 语句搞定数据库分页
    select top 10 b.* from (select top 20 主键字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主键字段 = a.主键字段 order by a.排序字段
    14、说明:前10条记录
    select top 10 * form table1 where 范围
    15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.)
    select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
    16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果表
    (select a from tableA ) except (select a from tableB) except (select a from tableC)
    17、说明:随机取出10条数据
    select top 10 * from tablename order by newid()
    18、说明:随机选择记录
    select newid()
    19、说明:删除重复记录
    Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
    20、说明:列出数据库里所有的表名
    select name from sysobjects where type='U'
    21、说明:列出表里的所有的
    select name from syscolumns where id=object_id('TableName')
    22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。
    select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
    显示结果:
    type vender pcs
    电脑 A 1
    电脑 A 1
    光盘 B 2
    光盘 A 2
    手机 B 3
    手机 C 3
    23、说明:初始化表table1
    TRUNCATE TABLE table1
    24、说明:选择从10到15的记录
    select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc
    三、技巧
    1、1=1,1=2的使用,在SQL语句组合时用的较多
    "where 1=1" 是表示选择全部   "where 1=2"全部不选,
    如:
    if @strWhere !=''
    begin
    set @strSQL = 'select count(*) as Total from [' + @tblName + '] where ' + @strWhere
    end
    else
    begin
    set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
    end
    我们可以直接写成
    set @strSQL = 'select count(*) as Total from [' + @tblName + '] where 1=1 安定 '+ @strWhere
    2、收缩数据库
    --重建索引
    DBCC REINDEX
    DBCC INDEXDEFRAG
    --收缩数据和日志
    DBCC SHRINKDB
    DBCC SHRINKFILE
    3、压缩数据库
    dbcc shrinkdatabase(dbname)
    4、转移数据库给新用户以已存在用户权限
    exec sp_change_users_login 'update_one','newname','oldname'
    go
    5、检查备份集
    RESTORE VERIFYONLY from disk='E:\dvbbs.bak'
    6、修复数据库
    ALTER DATABASE [dvbbs] SET SINGLE_USER
    GO
    DBCC CHECKDB('dvbbs',repair_allow_data_loss) WITH TABLOCK
    GO
    ALTER DATABASE [dvbbs] SET MULTI_USER
    GO
    7、日志清除
    SET NOCOUNT ON
    DECLARE @LogicalFileName sysname,
            @MaxMinutes INT,
            @NewSize INT

    USE     tablename             -- 要操作的数据库名
    SELECT  @LogicalFileName = 'tablename_log',  -- 日志文件名
    @MaxMinutes = 10,               -- Limit on time allowed to wrap log.
            @NewSize = 1                  -- 你想设定的日志文件的大小(M)
    -- Setup / initialize
    DECLARE @OriginalSize int
    SELECT @OriginalSize = size
      FROM sysfiles
      WHERE name = @LogicalFileName
    SELECT 'Original Size of ' + db_name() + ' LOG is ' +
            CONVERT(VARCHAR(30),@OriginalSize) + ' 8K pages or ' +
            CONVERT(VARCHAR(30),(@OriginalSize*8/1024)) + 'MB'
      FROM sysfiles
      WHERE name = @LogicalFileName
    CREATE TABLE DummyTrans
      (DummyColumn char (8000) not null)

    DECLARE @Counter   INT,
            @StartTime DATETIME,
            @TruncLog  VARCHAR(255)
    SELECT  @StartTime = GETDATE(),
            @TruncLog = 'BACKUP LOG ' + db_name() + ' WITH TRUNCATE_ONLY'
    DBCC SHRINKFILE (@LogicalFileName, @NewSize)
    EXEC (@TruncLog)
    -- Wrap the log if necessary.
    WHILE     @MaxMinutes > DATEDIFF (mi, @StartTime, GETDATE()) -- time has not expired
          AND @OriginalSize = (SELECT size FROM sysfiles WHERE name = @LogicalFileName) 
          AND (@OriginalSize * 8 /1024) > @NewSize 
      BEGIN -- Outer loop.
        SELECT @Counter = 0
        WHILE  ((@Counter < @OriginalSize / 16) AND (@Counter < 50000))
          BEGIN -- update
            INSERT DummyTrans VALUES ('Fill Log') 
            DELETE DummyTrans
            SELECT @Counter = @Counter + 1
          END  
        EXEC (@TruncLog) 
      END  
    SELECT 'Final Size of ' + db_name() + ' LOG is ' +
            CONVERT(VARCHAR(30),size) + ' 8K pages or ' +
            CONVERT(VARCHAR(30),(size*8/1024)) + 'MB'
      FROM sysfiles
      WHERE name = @LogicalFileName
    DROP TABLE DummyTrans
    SET NOCOUNT OFF
    8、说明:更改某个表
    exec sp_changeobjectowner 'tablename','dbo'
    9、存储更改全部表
    CREATE PROCEDURE dbo.User_ChangeObjectOwnerBatch
     @OldOwner as NVARCHAR(128),
     @NewOwner as NVARCHAR(128)
    AS
    DECLARE @Name   as NVARCHAR(128)
    DECLARE @Owner  as NVARCHAR(128)
    DECLARE @OwnerName  as NVARCHAR(128)
    DECLARE curObject CURSOR FOR
     select 'Name'   = name,
      'Owner'   = user_name(uid)
     from sysobjects
     where user_name(uid)=@OldOwner
     order by name
    OPEN  curObject
    FETCH NEXT FROM curObject INTO @Name, @Owner
    WHILE(@@FETCH_STATUS=0)
    BEGIN    
     if @Owner=@OldOwner
     begin
      set @OwnerName = @OldOwner + '.' + rtrim(@Name)
      exec sp_changeobjectowner @OwnerName, @NewOwner
     end
    -- select @name,@NewOwner,@OldOwner
     FETCH NEXT FROM curObject INTO @Name, @Owner
    END
    close curObject
    deallocate curObject
    GO

    10、SQL SERVER中直接循环写入数据
    declare @i int
    set @i=1
    while @i<30
    begin
       insert into test (userid) values(@i)
       set @i=@i+1
    end
    小记存储过程中经常用到的本周,本月,本年函数
    Dateadd(wk,datediff(wk,0,getdate()),-1)
    Dateadd(wk,datediff(wk,0,getdate()),6)
    Dateadd(mm,datediff(mm,0,getdate()),0)
    Dateadd(ms,-3,dateadd(mm,datediff(m,0,getdate())+1,0))
    Dateadd(yy,datediff(yy,0,getdate()),0)
    Dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
    上面的SQL代码只是一个时间段
    Dateadd(wk,datediff(wk,0,getdate()),-1)
    Dateadd(wk,datediff(wk,0,getdate()),6)
    就是表示本周时间段.
    下面的SQL的条件部分,就是查询时间段在本周范围内的:
    Where Time BETWEEN Dateadd(wk,datediff(wk,0,getdate()),-1) AND Dateadd(wk,datediff(wk,0,getdate()),6)
    而在存储过程中
    select @begintime = Dateadd(wk,datediff(wk,0,getdate()),-1)
    select @endtime = Dateadd(wk,datediff(wk,0,getdate()),6)

  • 测试下载

    2007-09-03 14:56:47

  • 浅谈冒烟测试与随机测试

    2007-09-03 14:47:04

    浅谈冒烟测试与随机测试
    软件测试的种类何其多也,每种测试都有其要达到的目的和实现手段。本文将介绍两种不太普遍的测试类型-冒烟测试与随机测试。

    冒烟测试

    冒烟测试(smoke testing),据说是微软起的名字。在《微软项目求生法则》一书第14章“构建过程”关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。

    冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。

    冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

    在一般软件公司,软件在编写过程中,内部需要编译多个版本(Builds),但是只有有限的几个版本需要执行正式测试(根据项目开发计划),这些需要执行的中间测试版本,在刚刚编译出来后,软件编译人员需要进行基本性能确认测试,例如是否可以正确安装/卸载,主要功能是否实现,是否存在严重死机或数据严重丢失等Bug。如果通过了该测试,则可以根据正式测试文档进行正式测试。否则,就需要重新编译版本,再次执行版本可接收确认测试,直到成功。

    新版本的基本功能确认检查的测试,有的公司成为版本健康检查(Build Sanity Check)。对于编译的本地化软件新版本,除了进行上面提到的各种测试检查,还要检查是否在新的本地化版本中正确包含了全部应该本地化的文件。可以通过采用文件和目录结构比较工具,首先比较源语言版本和本地化版本的文件和目录中的文件数目、文件名称和文件日期等,这个过程称为版本镜像检查(Build Image Check)。其次,分别安装源语言版本和本地化版本,比较安装后的文件和目录结构中的文件数目、文件名称和文件日期等,这个过程称为版本安装检查(Build Installing Check)。

    随机测试

    在软件测试中除了根据测试样例和测试说明书进行测试外,还需要进行随机测试(Ad-hoc testing),主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行样例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

    随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试(Regressive testing)一起进行。

    理论上,每一个被测软件版本都需要执行随机测试,尤其对于最后的将要发布的版本更要重视随机测试。随机测试最好由具有丰富测试经验的熟悉被测软件的测试人员进行测试。对于被测试的软件越熟悉,执行随机测试越容易。只有不断的积累测试经验,包括具体的测试执行和对缺陷跟踪记录的分析,不断总结,才能提高。
  • 手机测试资料

    2007-08-31 16:09:40

    暂无
  • 手机软件测试的工具应用

    2007-08-31 15:46:24

    下面是进行一致性测试的一些参考意见: ――提示的格式是否一致 ――菜单的格式是否一致 ――帮助的格式是否一致 ――提示、菜单、帮助中的术语是否一致 ――各个控件之间的对齐方式是否一致 ――输入界面和输出界面在外观、布局、交互方式上是否一致 ――命令语言的语法是否一致 ――功能类似的相关界面是否在在外观、布局、交互方式上是否一致(比如商品代码检索和商品名称检索) ――存在同一产品族的时候,是否与其他产品在外观、布局、交互方式上是否一致(例:Office产品族) ――同一层次的文字在同一种提示场合(一般情况、突显、警告等)在文字大小、字体、颜色、对齐方式方面是否一致 ――多个连续界面依次出现的情况下,界面的外观、操作方式是否一致(当然可能会有例外,比如操作结束的界面) 信息反馈测试 假设系统的使用者是一个初出茅庐的生手,你能指望她(他)在进行操作不出错吗?但这还不是问题的所在,问题的所在在于我们都会犯错误,我们都有自己不了解的东西。如何避免,这要求我们的人机界面有足够的输入检查和错误提示功能。通过信息反馈,用户得到出错提示或是任务完成的赞许之语。但有些不幸的是,我们很多系统都在此方面做的不尽人意。下面是这类测试的一些参考意见: ――系统是否接受客户的正确输入并做出提示(例:鼠标焦点跳转); ――系统是否拒绝客户的错误输入并做出提示(例:弹出警告框,声响); ――系统显示用户的错误输入的提示是否正确,浅显易懂(例:“ERR004”这样的提示让人不知所云); ――系统是否在用户输入前给出用户具体输入方式的提示(例:网站注册程序); ――系统提示所用的图标或图形是否具有代表性和警示性; ――系统提示用语是否按警告级别和完成程度进行分级(若非某些破坏性操作,请对用户温和一些); ――系统在界面(主要是菜单、工具条)上是否提供突显功能(比如鼠标移动到控件时,控件图标变大或颜色变化至与背景有较大反差,当移动开后恢复原状); ――系统是否在用户完成操作时给出操作成功的提示(很多系统都缺少这一步,使用户毫无成就感)。 界面简洁性测试 你的人机界面像你的脸一样对称、干净吗?我们往往看到的使很多系统在人机界面设计上就像长了天花的病人。因此我们不得不对其进行美容前的检查,下面是一些供检查的建议条款。 ――用户界面是否存在空白空间(没有空白空间的界面是杂乱无章的,易用性极差); ――各个控件之间的间隔是否一致; ――各个控件在垂直和水平方向上是否对齐; ――菜单深度是否在三层以内(建议不要超出三层,大家可以参考微软的例子); 界面控件分布是否按照功能分组(菜单、工具栏、单选框组、复选框组、Frame等); ――界面控件本身是否需要通过滑动条的滑动来显示数据(建议采用分页显示并提供数据排序显示功能); 实际上,一个处理该类测试的原则性的东西就是:干掉多余的东西,尽可能分组。 界面美观度测试 你的界面美观吗?试想一个服装模特穿一身不得体的衣服其展示效果会如何?我至今还记得在学习美学时老师讲过的一句话:美是对比的产物。在软件界面的美观度测试上,我们不得不注意下面的一些建议。 ――前景与背景色搭配是否反差过大; ――前景与背景色是否采用较为清淡的色调而不是深色(比如用天蓝色而不用深蓝色和墨绿色); ――系统界面是否采用了超过三种的基本色(一般情况下不要超过三种); ――字体大小是否与界面的大小比例协调(一般中文采用宋体9-12,英文采用Arial或Times New Roman,日文采用SimSun或明朝); ――按钮较多的界面是否禁止缩放(一般情况下不宜缩放,最好禁止最大、最小化按钮); ――系统是否提供用户界面风格自定义功能,满足用户个人偏好; 用户动作性测试 “科学是懒人的哲学”,这是我大学专业老师的一个观点。我们的计算机系统也不例外。我们的系统能让用户尽可能地偷懒吗(少动手肘,少记命令等),从这个角度出发,相信你会对用户动作性测试的本质有较深的体会。我相信没有一个测试员愿意做的多而收获的少。此外用户从某种角度上是心怀不测的挑衅者和肇事者。他们很少有太多的耐心来对待他们寄以很大期望的系统。下面是一些判断用户是否能够“偷懒”和“发泄防止”的测试建议。 ――是否存在用户频繁操作的快捷键; ――是否允许动作的可逆性(Undo,Redo); ――界面是否有对用户的记忆要求; ――系统的反应速度是否符合用户的期望值; ――是否存在更便捷、直观的方式来取代当前的界面的显示方式;(比如用菜单界面代替命令语言界面) ――用户在使用时任何时候是否能开启帮助文档(F1); ――系统是否提供模糊查询机制和关键字提示机制减少用户的记忆负担(比如清华紫光输入法的模糊音设定); ――是否对可能造成长时间等待的操作提供操作取消功能; ――是否支持对错误操作进行可逆性处理,返回原有状态; ――是否采用相关控件(如:日历,计算器等)替代用户手工键盘输入; ――选项过多的情况下是否采用下拉列表或者关键字检索的方式共用户选择; ――系统出错是是否存在恢复机制使用户返回出错前状态(如:Office XP的文件恢复); ――在用户输入数据之前,用户输入数据后才能执行的操作是否被禁止(如特定的按钮变灰); ――系统是否提供“所见即所得(WYIWG)”或“下一步提示”的功能(比如预览); 行业标准测试 每个行业都有自己的一套标识体系。请尽可能不要与其“撞车”。这就需要我们的人机界面测试人员对软件行业的符号体系有所了解,否则将很难担此大任。 ――界面使用的图符、声音是否符合软件所面向领域的行业符号体系标准; ――界面说使用的术语是否符合软件所面向领域的行业命名标准; ――界面的颜色是否与行业代表色彩较为相近; ――界面的背景是否能够反映行业相关主题(比如:反映环保的背景一般采用自然风光作为背景); ――界面的设计是否反映行业最新的理念和大众趋势; 当然、每一个软件也应当具有自己的一些个性,这些个性是体现软件开发商和所面向的用户领域的特定需要的。比如微软的启动界面和苹果的启动界面就完全是两码事。一个不失个性的软件,其本身就是软件制作商的“广告代言人”。既要突出制作商,又不能喧宾夺主。下面我们给出一些常见的软件个性测试原则。 ――软件的安装界面是否有单位介绍或产品介绍,并拥有自己的图标; ――软件的安装界面是否在界面上不同于通用的安装工具生成的界面(比如:金山快译的安装界面就比较有特色); ――主界面的图标是否为制作商的图标; ――系统启动需要长时间等待时,是否存在Splash界面,它是否包含或反映制作者信息; ――软件是否有版本查看机制,版本说明上是否有制作者或是用户的标识; ――软件的界面的色彩、背景、布置是否与同类产品有不同之处,如果有,是否更为简洁、美观; ――软件界面操作与同类产品相比,是否能够减少用户输入的频繁度; ――软件界面操作与同类产品相比,是否在出错预防机制和提示上更为直观、醒目; ――软件界面是否为特殊群体或是特殊的应用提供相应的操作机制(比如Windows的放大镜); 【小结】 总而言之,软件人机界面的测试需要一个立足“共性”但又要强调“个性”的测试思路,软件人机界面的测试与其他类型测试不同,更加强调从用户的角度、审美观去看待待测软件。既不能过于“大俗”,又不能过于“大雅”。很多时候,需要在强调规整和强调个性间进行权衡。这迫切需要我们的界面测试人员用大脑去思考,用心去体会。这对人机界面测试人员在审美观上也是一个极大的挑战。
  • 手机软件测试类型及分析

    2007-08-31 15:41:36

    1Basic Function [基本功能测试] 就是验证手机基本功能是否实现,发短信、通话、照相等,包括他们的子功能如转发、连拍等。最基本的也是投入时间精力最大的测试类型,也是最重要的,如果基本功能都没有实现其他测试也就变成枉然了

    2UI [用户界面验证]: 验证手机的界面、菜单等是否是与客户需求和设计保持一致,主要依据 UI spec[用户界面说明],MMI[人机交互界面]Menu tree[菜单树]等,这些文档也是需要根据客户需求及时更新的 

    3Limit Value [极限值测试] 对应黑盒测试的边界值分析法,边界值分析法设计出的测试用例发现 bug 的能力也是最强的,一般依据极限值表设计测试用例,来指导测试。一般测试点如输入字符的个数,会议通话的个数,文档存储个数等 

    4Confict Test[冲突测试]: 主要依据冲突表,冲突表中列出各个事件之间是否存在冲突,冲突测试用例也是依据冲突表设计,这类用例往往可以发现一些比较严重的 bug ,如游戏中来电,流览WAP时插拔充电器、USB线、camera 中低电等 

    5Performance Test[性能测试]:主要测试项Call test ,长时间通话,发送大容量的彩信x条,开关机x次,摄像x时间,可以考虑用自动化测试,手机自动化测试与PC软件自动化测试类似,利用自动化测试工具录制、调试 写脚本、回放、分析结果,与PC软件不同的是手机自动化测试需要硬件的支持来固定手机和利用气压按键。 

    6Stress Test[压力测试]: 压力测试是在将手机容量存储状态到满后做的一系列操作,如短信、彩信满,Idle界面各事件个数满如未接电话、闹铃等 

    7Network Compatibilit[网络兼容性测试]: 网络参数的设置,GPRS等业务是否可用,本外地的联通移动卡各类业务卡在本地的作测试,还需要做Filed Test[场测]即到最终用户实际使用的环境作现场测试,Filed test 有国际专用用例。 

    8SIM Card Compatibilit[SIM卡兼容性测试] 一般是对联通移动的各类业务卡,新出的大容量(64K)、国际漫游卡、呼叫限制卡、一卡双号卡等卡的验证,验证能否正确注册、对应的业务功能是否实现、基本功能的正确性 

    9PD test [Project Design Test]  验证在项目设计阶段的设计的功能是否得以实现、是否正确,设计用例依据项目设计文档 

    10CR Verification[客户需求验证] 验证客户的一些特定需求和变更后的需求 

    11User Manual [用户手册验证] 其重要性是不言而喻的,用户手册一定要和手机实际功能相符合,不然将会影响用户对产品的信任 

    12FAT( Full Type Approval)[全类型批准]:是GSM手机进入GSM网络必须通过的专业测试。 

  • web测试工具对比--自动化功能测试(3)

    2007-08-28 20:40:09

     

    扩展性评测,大家知道测试软件中,数据至关重要。如登陆测试中,需要验证所有用户是否可以成功登录。用手工测试工作量太大,利用测试工具脚本的强大功能,就可以减少工作量.对任意用户进行登陆测试,脚本从用户文件中读取数据,每次测试人员需要测试新的用户,只要添加用户到用户列表中,就可以自动测试新用户登陆是否成功。

     

     

    1.    Winrunner

    设计user.txt文本格式:用户<kTab>密码<kReturn>

    如:  admin<kTab>jetspeed<kReturn> 

     

    脚本如下:

    web_browser_invoke(IE,"http://192.168.1.42");
    win_max("Browser main Window");
    //打开文件

    file_open("F:\\user.txt",FO_MODE_READ);

    //读取文件数据,填写用户名,密码
    while(file_getline("F:\\user.txt",line)==0)
    {
       
    win_mouse_click ("html_frame_2", 402, 36);
       
    win_type("html_frame_2",line);
       
    win_mouse_click ("html_frame_2", 566, 33);
    }
    file_close("F:\\user.txt");

     

    备注:由于winrunner脚本为语言为c,所以注意c语言特性,对于特殊字符需要利用转义字符“\”, file_open("F:\\user.txt",FO_MODE_READ),这里f:\user.txt,就需要加转义字符。

    2.    Robot

    设计user.txt文本格式:用户 密码

    如:admin jetspeed

    脚本如下:

     

    Sub Main

        Dim Result As Integer

        Dim Temp as String

        dim FileNumber as integer

        Dim iPos as integer

        Dim UserName as string

        Dim pw as string

        'Initially Recorded: 2003-12-22  17:07:58

    'scrīpt Name: Demo

     

       

    StartBrowser "http://192.168.1.42", "WindowTag=WEBBrowser"

       

        Window SetContext, "WindowTag=WEBBrowser", ""

        Browser NewPage,"HTMLTitle=Dynaweb EPS 2003企业门户服务器",""

       

       

    '  

        FileNumber = FreeFile

    //循环读取文件中数据,登陆

    //自读形式 打开文件

        Open "f:\user.txt" For Input As #FileNumber

    Do While Not EOF(1)

     // 读取数据,进行处理

          Line Input #FileNumber, Temp

          iPos = InStr(1,Temp," ")

          //提取用户名

    UserName = left(Temp,iPos-1)

         //提取密码

    pw = Right(Temp,len(Temp)-6) 

          //找到用户,密码文本框,填写用户名,密码

    EditBox Click, "Name=username", "Coords=35,12"

          Inputkeys UserName

          EditBox Click, "Name=password", "Coords=15,8"

          inputkeys pw

          //提交数据,退出当前用户

          PushButton Click, "Name=submit"

          Browser NewPage,"HTMLTitle=Dynaweb EPS 2003企业门户服务器",""

          HTMLImage Click, "Index=7", "Coords=11,7"

        Loop

        Close #FileNumber

        //关闭Ie

        Window CloseWin, "", ""

     

    End Sub

     

     

    3.    quick test

    设计user.txt文本格式:用户 密码

    如:admin jetspeed

    脚本如下:

    Dim iPos
    Dim UserName
    Dim pw
    Dim fso
    Dim ts
    Dim Temp
     
       Set fso = CreateObject(
    "scrīpting.FileSystemObject")
       Set ts = fso.OpenTextFile(
    "F:\user.txt",1)
      
       Do While not ts.AtEndOfStream  
          Temp = ts.ReadLine
          iPos = InStr(
    1,Temp," ")
          UserName = left(Temp,iPos-
    1)
          pw = Right(Temp,len(Temp)-
    6)

          Browser("Dynaweb EPS").Page("Dynaweb EPS").WebEdit("username").Set UserName
          Browser(
    "Dynaweb EPS").Page("Dynaweb EPS").WebEdit("password").Set pw
          Browser(
    "Dynaweb EPS").Page("Dynaweb EPS").WebButton("v{ _U ").Click
         Browser(
    "Dynaweb EPS").Page("Dynaweb EPS_2").Link("恄 Q | ~ ").Click
          Browser(
    "Dynaweb EPS").Page("Dynaweb EPS_3").Sync
        
     loop
     
     ts.close


    备注:quick test脚本

    一.中文注释要引号加空格

    二.Vbscrīpt脚本语言有限制,它只是vb语言的子集

    三.声明不需要添加类型,否则脚本编译不通过,差错很困难

  • web开源测试工具

    2007-08-27 15:21:18

    Java开源Web测试工具】

     HtmlUnit  HtmlUnit 是 JUnit 的扩展测试框架之一。HtmlUnit 将返回文档模拟成 HTML,这样您便可以直接处理这些文档了。HtmlUnit 使用例如 table、form 等标识符将测试文档作为 HTML 来处理。它同样需要遵循 JUnit 测试框架结构的 Java™ 测试程序。

     MaxQ   MaxQ是一个Web功能测试工具。它包括一个记录测试脚本的HTTP代理,一个用于重放测试的命令行实用程序。代理记录器自动存储提交到表单的变量,那么你无需用手书写它们。

     jWebUnit jWebUnit 是基于java的测试网络程序的框架。它提供了一套测试见证和程序导航标准。jWebUnit 有JUnit和HtppUnit实现。

     HttpUnit   HttpUnit对网络应用程序进行自动完善和测试的JAVA类库程序。

     Canoo WebTest   Canoo WebTest的测试脚本是基于XML格式的。这样可以让不熟悉编程语言的人很容易掌握。

     Apache JMeter   Apache JMeter是一个专门为运行和服务器装载测试而设计的、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。

     Commons-Latka  Commons-Latka 是一个HTTP 功能测试包,用于自动化的QA,验收和衰减测试.

     TagUnit   在测试 J2EE 应用的时候,往往一个测试工具是不够的。这里推荐 TagUnit,TagUnit 是一个开源的测试框架,可以帮助你测试 JSP custom tags。该项目与近日发布了 tagunit 1.0,

     Slimdog   Slimdog提供一个简单基于脚本的的Web应用程序测试工具。它在httpunit的基础上进行扩展,这个工具提供一些命令来用forms进行工作,检查tables中的内容,在HTML页面之间进行链接。用户不用写很长的JUnit testcases或必要的XML文件来进行测试,用户只需写简单的测试脚本。脚本文件中的每一行就是包含一条命令的一个测试节点。在同一文件中所有命令将被处理成一个testcases。每条命令的语法简单易学,几个scrīpts可以组合成testsuite。测试结果既可以写到console,也可以生成一个file或一个HTML页面。

     Solex  Solex是一个Web应用程序测试工具只能作为Eclipse插件用.它提供记录客户端session的功能并可通过各种参数来调整它.

     Imprimatur   Imprimatur是一个Web应用程序测试工具.它通过一个简单的XML文件来对测试进行描述.除了能够处理标准的GET与POST动作之外,Imprimatur还能处理HTTP sessions和文件上传.可以利用正则表达式对返回的结果进行验证.

     Tagit   Tagit是模拟对象(Mock Objects)测试模式的一个实现。它可用于在脱离容器的情况下对自定义JSP标签进行单元测试。

     Sahi   Sahi是一个用于Web应用程序的自动测试工具。Sahi运行为一个代理服务器,必须把浏览器的代理设置为Sahi服务器。 然后Sahi注入javascrīpt来访问Web页面中的元素。Sahi支持Http与Https并且独立于Web站点或Web应用程序。

     Selenium   Selenium是一个用于Web应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE,Mozilla和Firefox等。这个工具的主要功能包括:测试与浏览器的兼容性--测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能--创建衰退测试检验软件功能和用户需求。

     CubicTest  CubicTest这个开源的Eclipse插件能够让Web应用程序的测试变得更加易于设计,理解和运行,即使是对于非技术人员。 CubicTest采用一个图形用户界面来让用户对测试进行建模而不是编写测试脚本。 这个工具主要是针对基于测试驱动的Web应用程序开发,但也能够用于测试现有Web应用程序。

     Janissary   Janissary在是一个简单的Web站点负载与性能测试工具。根据配置,Janissary可以创建并发或非并发的HTTP Request然后报告这些Request的状态与响应时间。

     Jboss JSFUnit   Jboss JSFUnit是一个专门用于JSF应用程序的综合测试框架。它设计成能够在JSF层对JSF应用程序进行调试和综合集成测试。JSFUnit测试运行在容器之中,能够让开发人员完全控制managed beans,FacesContext和内部JSF组件Tree。同时,还可以控制每个客户端请求的HTML输出。

Open Toolbar