灿烂的阳光,苦涩的生活,认真做,你能行!

发布新日志

  • 常用的功能测试方法

    2008-10-23 09:50:42

        功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能。常用的测试方法如下:
    1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确。
    2. 相关性检查:删除/增加一项会不会对其他项产生影响,如果产生影响,这些影响是否都正确。
    3. 检查按钮的功能是否正确:如update, cancel, delete, save等功能是否正确。
    4. 字符串长度检查: 输入超出需求所说明的字符串长度的内容, 看系统是否检查字符串长度,会不会出错.
    5. 字符类型检查: 在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.
    6. 标点符号检查: 输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
    7. 中文字符处理: 在可以输入中文的系统输入中文,看会否出现乱码或出错.
    8. 检查带出信息的完整性: 在查看信息和update信息时,查看所填写的信息是不是全部带出.,带出信息和添加的是否一致
    9. 信息重复: 在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
    10.检查删除功能:在一些可以一次删除多个信息的地方,不选择任何信息,按”delete”,看系统如何处理,会否出错;然后选择一个和多个信息,进行删除,看是否正确处理.
    11.检查添加和修改是否一致: 检查添加和修改信息的要求是否一致,例如添加要求必填的项,修改也应该必填;添加规定为整型的项,修改也必须为整型.
    12.检查修改重名:修改时把不能重名的项改为已存在的内容,看会否处理,报错.同时,也要注意,会不会报和自己重名的错.
    13.重复提交表单:一条已经成功提交的纪录,back后再提交,看看系统是否做了处理。
    14.检查多次使用back键的情况: 在有back的地方,back,回到原来页面,再back,重复多次,看会否出错.
    15.search检查: 在有search功能的地方输入系统存在和不存在的内容,看search结果是否正确.如果可以输入多个search条件,可以同时添加合理和不合理的条件,看系统处理是否正确.
    16.输入信息位置: 注意在光标停留的地方输入信息时,光标和所输入的信息会否跳到别的地方.
    17.上传下载文件检查:上传下载文件的功能是否实现,上传文件是否能打开。对上传文件的格式有何规定,系统是否有解释信息,并检查系统是否能够做到。
    18.必填项检查:应该填写的项没有填写时系统是否都做了处理,对必填项是否有提示信息,如在必填项前加*
    19.快捷键检查:是否支持常用快捷键,如Ctrl+C Ctrl+V Backspace等,对一些不允许输入信息的字段,如选人,选日期对快捷方式是否也做了限制。
    20.回车键检查: 在输入结束后直接按回车键,看系统处理如何,会否报错.
  • 软件质量模型中易用性包括如下4点

    2008-10-16 13:26:52

    1.易理解性
    2.易学性
    3.易操作性
    4.吸引性
    可以根据这4点做方案。

    也就是我们平时说的:登陆方便吗、操作繁琐吗、提供的功能实用吗、界面美观吗、布局合理吗。

  • Windows Media Services (流媒体服务器)的配置

    2008-10-14 17:10:34

    1. 开始->所有程序 ->控制面板->添加删除程序->添加/删除windows组件;

    2. 选择windows Media Services点击“下一步”依次安装;

    3. 开始->程序->管理工具中选择windows Media Services;

    4. 建立发布点;

    Microsoft 的 Windows Media 流系统平台提供了颇为完整的产品线,从制作端的Windows

     Media Author, Windows Media ASF Indexer,到编码用的 Windows Media Encoder,伺服传送

    内容用的 Windows Media Server,还有保护智慧财产权的 Windows Media Rights Manager,

    只是相较于RealNetworks,在各个产品的功能深度上都稍嫌不足;当然对一个完全免费的流平台,

    这样的功能的确已经是难能可贵了。而且Windows Media 还比 RealNetworks 多提供了伺服负载模拟

    程式 (Load-Simulator),可以让系统模拟实际上线的负载情况,测试系统伺服能力的极限,避免太多

    使用者涌入时系统无法负荷。Windows Media Encoder (当然这里可以用广州视盈数码科技有限公司

    的Nowstream软件来实现)另外也多提供了屏幕捕捉的功能。此项屏幕捕捉的功能可以将大小视窗的

    所有内容及游标移动的过程全部纪录在高度压缩的流视频文件中,对于有教育训练等需求的使用者

    是个很好用的工具。

      在正式介绍流媒体服务器架设之前,我们先来了解一下流媒体的概念:
    流媒体实际上是个技术名词。
    随着宽带成为网络架构的重点,网络上的信息不再只是文本、图象或者简单的声音文件,
    流媒体也就是Streaming Media由此孕育而生.
      流媒体不同于传统的多媒体,从前,多媒体文件需要从服务器上下载之后才能播放,一个一分钟
    的视频文件,在56K的窄带网络上至少需要30分钟进行下载。而流媒体的特点是运用可变带宽技术,
    使人们可以在28K到1200K的带宽环境下在线欣赏高品质音频和视频节目。 
      到目前为止,互联网使用较多的流媒体格式主要有美国Real Networks公司的RealMedia和微软
    公司的Windows Media。不过,随着信息技术的发展,流媒体还有着广阔应用的空间。
     

    下面了解一下流媒体服务器的一些概念:
      首先我们来理解一下什么叫单播,什么叫多播,其实单播的概念就是一个:只播放本地服务器
    的媒体文件。例如:ASFroot 下的文件就是用于单播的,简单点来说就是单单对外播放。
      多播的概念比单播只是深了一个层次。大家都有看新闻吧,新闻的现场直播不错吧? 多播的概念
    与电视台差不多,现在来分析一下电视台,电视台有固定的发射频率,服务器也有固定的 IP,两者
    本质上是一样的。
    以下用逻辑点来说明:
    电视台(简称 A 点)放电视剧就把录像带(简称 B 点)插进去就行了。
    服务器把自己的文件共享出来就行了,这就是单播。
    电视台做直播,直播地点(简称 C 点)要将信号发射到电视台,电视台再对外发射。
    服务器接收到一个数据源,再将这个数据源对外共享。
    无论怎样,用户(简称D点)访问的时候不是直接访问源头,而是访问电视台(服务器),这就是多播。
    多播的概念就是 D-> A <-B、C 这个架构。
    (B或者C 发送数据到 A, D 访问 A)
    狭义上 B 点是固定的,它只是录像带,用 B 这个方案就是单播。
    C 点是活动的(直播地方嘛,当然是活动的), C 这个方案就是多播。
    Media Server(以下简称MS) 支持同时单播与多播。
      对于C点这个位置,MS可以使用Nowstream编码软件来实现(或者media Encoder)。当然编码卡
    也是必须的,笔者采用视盈数码科技公司的HVC400 MPEG4硬件编码器来实现。对于 MS 来说,只允许
    本地拥有 Administrator(NetShowSevice) 权限的用户作出配置,现在我们再来说说流媒体服务器
    支持的文件格式,windows media server支持的格式主要有:asf、wmv、wma。
      好了,说了那么多,该到正题了,我们的目的是做一个windows media server流媒体格式文件
    的流媒体服务器。
      现在市面上能够买到的一些电影文件有rm格式和wmv格式。还有一些是DivX技术的avi格式,要想
    让你的服务器对他们通吃,不是没有办法,现在realsystem的最新流媒体服务端软件Helix Server
    已经支持windows media了不过,到现在为止,还没有人破解它的授权算法,呵呵,授权价格是很贵的
    ,我想很多人是没有这个购买力的,我们现在只好使用已经破解了的realserver8这个软件了,但
    realserver8不支持windowsmedia,要想实现“通吃”,只能在一台服务器上架设两种流媒体服务器,
    当然如果对流媒体知识不深的朋友建议用windows media server。
     
     
    一、windows media server的架建第一步添加Media services 9
      windows media server是微软免费提供的一个流媒体服务端软件(当然不是真的免费,你想想
    windows2003专业版跟企业版要多少钱,不过我用盗版)在2003光盘中可以找到,在装windows2003时
    可以选择这个服务,如果装2003系统时,你没有选择添加这个服务,你也可以在"添加删除程序"里选择
    添加这个服务(不要告诉我你不会装windows2003)添加后,你的机器就已经拥有了windows media
    server服务了media services 9,你可以把asf、wmv等文件放到C:\WMPub\WMRoot中,
    用mms://地址/文件名的方式来访问你放进去的那个文件了,呵呵,怎么样?简单吧?不过,
    你不可能真的就用c盘来存放那么多的流媒体文件吧?我们要做的是更改流媒体服务器的主目录,
    就是说我们可以在另外的分区建立一个目录来存放这些文件,当用mms://地址/文件名访问的时候
    是访问你建立的那个目录里的文件而不是C:\WMPub\WMRoot中的文件。
    二、在服务器上安装HVC400编码器和Nowstream编码软件,来实现实况流的直播或定时直播、
    实况流的拉传递功能、实况流的推传递功能、文件保存或定时保存等。为什么要用
    Nowstream跟HVC 400编码卡而不用采集卡呢?因为:HVC400是一款高压缩比,高清晰度,
    质量稳定的MPEG-4硬件压缩卡。它是基于支持多格式的单芯片压缩技术的产品,该技术运用
    多重运算法则把原视音频信号压缩并接合成不同格式的流文件,从而保证了视频跟音频在
    时间上的同步。HVC400支持包括WMV,DIVX,MPEG-1,MPEG-2等在内的多种文件格式的
    硬件压缩,硬件压缩技术大大的节省了系统的资源,因此能在普通PC机上轻松实现四路卡
    同时运行。HVC400的配套软件-NOWSTREAM,可以支持四张卡同时运作,每一路卡可以独立
    运行于不同的码率和图像分辨率,操作简单,使用稳定。HVC400也是高清晰视频压缩用户
    的好选择,它在1.5Mbps的低码率下就可以实现接近DVD的图象质量。
    1.实况流发布单播的方法
    1)打开Nowstream编码软件后,打开软件设置:码率、分辨率、视频输入等,来实现实况流
    的单播。
     
     
    2) 在“输出参数”选上“保存到文件”、“本机发布到服务器”。
     
     
    3)如果需要定时单播发布功能,则选择“定时参数”添加一个任务来实现。
     
     
    4)然后对着预览窗点击右键选“开始”运行,就简单实现实况流单播发
     
    5)接收端的设置。接收端可以是Internet用户,也可以是局域网的用户,接收软件都可以
    直接用Windows Media Player 9或以上版本。运行Media Player,在“文件”菜单选
    “打开URL”,如下图。
     
     
    Internet用户,在上图“打开”栏里输入服务器的IP地址和端口号,
    mms://219.136.128.169:9001;局域网用户,在上图“打开”栏里输入服务器的IP地址
    和端口号,如mms://192.168.1.58:9001,就可以收了。
    2.实况流的拉传递功能的实现
    1)实况流发布单播后,可以对发布的实况流(逻辑中的C)做拉传递到Media Server进行分发、
    管理、授权等等,可以说实现了多播(多播的概念就是 D-> A <-B、C 这个架构)。
    2)运行Media Service,如下图添加一个高级的发布点。
     
    3)弹出对话框如下,选“广播” 的“发布点类型”,输入“发布点名称”(最好起一个能
    代表发布点直播节目的名称),在“内容的位置”栏填上采集端的IP地址和端口号。
     
     
    4)按“确定”就能成功建立一个发布点,为了发布点的对外发布运行
     
     
    5)选“多播信息文件(.nsc)和公告文件(.asx)”按“下一步”,在新弹出的对话框中按
    “添加”。
     
     
    6)按“确定”,再按“下一步”,一直到“完成”,会弹出一个“测试多播公告”框,
    如下,按“退出”。多播公告,把该发布点选中,在“公告”栏按一下
     
    7)现在可以看见“发布点”增加了一个叫Webviews-cast1的发布点。在可以在IE地址栏输入mms://192.168.1.88/Webviews-cast1来收看该发布点正在直播的节目。
    8)利用本机做成服务器的,配合Media Service进行拉传递的特点:
        操作简单方便,采集端跟发布服务器端可以是同一台电脑,也可以分开两台电脑。
    运行了多播公告之后,可用运用组播技术,前提是安装IIS,把“多播公告信息文件”保存到
    IIS的Web默认文件夹里;组播技术是在增加客户端接收直播的情况下,输出带宽几乎不变,
    发布服务器输出带宽不会因客户端增加多少而增加。
     
     
    3.实况流的推传递功能
    1)运行Windows Media Services,按鼠标右键,建立一个广播发布点。如下图:“运行多播
    公告向导”,弹出对话框如下图。
     
    2)在添加服务器那里输入本机的IP地址,如:
     
     
    3)按“确定”之后,就会增加了一个服务器,然后对该服务器的“属性”->
    “WMS…服务器控制协议”项进行设置,如图:
     
    4)按“确定”之后,在“属性”栏,“授权”类,“WMS发布点ACL授权”启用:
     
     
    5)建立发布点之后,在NowStream的“输出参数”栏选“推到WMS服务器”
    再把相应的参数设好,
    如下图,注意,“端口号”的设定要跟2.3点Media Service发布点的端口设定相同。
     
     
    6)在NowStream按“开始”之后,软件会把视音频流推到WMS服务器上面,这时候,
    Windows Media Service会显示出一个名叫NowStream的发布点,如下图:
     
     
    7)客户端只需在Media Player输入相应的URL就可以收看该发布点发布的节目流。
    其中192.168.1.88是服务器的IP地址,NowStream是该发布点的名称。
     
     
    8)用“推到WMS服务器”进行WMV直播的特点:
    “推到WMS服务器”这种模式是定时网络视频直播的首选。把Media Service的一些参数
    配置好之后,只要采集端开始把流推出去之后,在Media Service上就会自动生成一个
    发布点用户端可以直接接到改发布点上观看正在直播的节目。对于做定时,分时段网络
    直播的用户,给予了极大的方便。
    9)文件保存或定时保存用Nowstream编码软件使用起来就更加简单易用。这里就不加详细
    说明(详情请到:http://www.webviews.com.cn/....)。
     
     
    三.Media server实现点播发布的操作方法跟直播流的发布几乎一样简单易用,
    只需在添中发布点类型里选择“点播”,接下来的步骤朋友们都知道啦。如下图
     
     

     

     
     

     

  • 使用LoadRunner开发JAVA Vuser

    2008-10-13 16:20:14

    众所周知,Java语言是一门非常适合网络开发的语言,用 Java语言进行性能测试脚本开发将会大大提高测试开发效率。LoadRunner中提供了对Java虚拟用户的支持。Java虚拟用户依托于JDK,这大大扩充了LoadRunner的脚本开发功能。测试人员既可以用Java虚拟用户来测试基于Java的应用系统的性能,又可以使用Java语言的强大开发脚本功能来测试其他平台的系统性能。

    本章将和读者一起探索LoadRunner的Java世界,重点讨论如何开发Java自定义的虚拟用户脚本。本章主要内容如下:

    n  认识Java虚拟用户

    n  Java脚本开发基础

    n  Java算法测试案例

    7.1  认识Java虚拟用户

    7.1.1  Java虚拟用户协议

    Java虚拟用户脚本主要有Java Vuser、Corba-Java、RMI-Java、EJB等类型。这些类型的虚拟用户脚本均可以用Java语言来手工编写。下面将对各类Java虚拟用户简单地进行介绍。

    Java Vuser

    Java Vuser是自定义的Java虚拟用户脚本,脚本中可以使用标准的Java语言。这种虚拟用户不可以录制,只能采用纯手工编写,其适用范围和C Vuser一样,非常广泛。

    本章主要探讨Java Vuser的开发方法。

    Corba-Java

    Corba-Java类型的虚拟用户主要用来测试用Java编写的、使用Corba应用程序或小程序的性能,用户可以先运行VuGen录制的脚本,然后使用标准的Java库函数以及LoadRunner特有的Java方法来增强该脚本。

    RMI-Java

    RMI-Java 虚拟用户适用于测试RMI(远程方法调用)Java应用程序或小程序。选择RMI-Java 用户进行录制,VuGen可以创建对应的Java脚本。完成录制后,可以使用JDK或自定义类,通过标准的Java代码来增强或修改脚本,还可以通过特定于LoadRunner的Java方法增强该脚本。

    EJB

    EJB虚拟用户专门用于测试Enterprise Java Beans对象。采用EJB协议,VuGen会自动创建脚本以测试EJB功能,无需录制或编程,这和标准的Java Vuser明显不同。

    在使用EJB协议类型的虚拟用户生成脚本前,需要指定 JNDI属性和关于应用程序服务器的其他信息。LoadRunner的EJB检测器首先扫描应用程序服务器并确定哪些EJB可用;接着选择要测试的 EJB,LoadRunner将生成要测试每个EJB方法的脚本,并为每个方法创建事务,便于度量其性能并找出问题。

    需要注意的是,创建EJB虚拟用户测试脚本必须在应用程序服务器主机上安装LoadRunner EJB检测器,而且检测器必须处于活动状态。EJB检测器是一个独立的代理程序,必须将其安装在要扫描查找EJB的每一台计算机上。安装EJB检测器前,计算机上还需要安装有效的JDK环境。

    本书中将以Java Vuser为例来讲解Java虚拟用户的开发和使用方法。Corba-Java、RMI-Java、EJB、Jacada Vuser等类型的虚拟用户使用方法可以参考LoadRunner的联机帮助手册,但是其手工脚本的开发方法与Java Vuser是一样的。

    在“新建虚拟用户”对话框中的“自定义”或“全部协议”类别下选择“Java Vuser”即可创建空的Java Vuser脚本,如图7-1所示。

    在自动生成的脚本中,vuser_init、 vuser_end部分没有任何内容,Actions部分生成的脚本如图7-2所示。对于Java类型的虚拟用户,可以编辑Actions类,而 init、end部分则不可以进行编辑。在Actions类中,有三个方法init、action和end,通常在init方法中编写初始化代码、在 action方法中编写业务流程、在end方法中编写诸如释放资源之类的代码。

    Java Vuser脚本中可以放置任何标准Java代码,这也是Java虚拟用户的魅力所在。

    7.1.2  Java虚拟用户适用范围

    LoadRunner完全支持C语言,原则上可以用C语言实现任何想要录制的功能。但是C语言的特点决定了这样做是不现实的:一是性能测试脚本开发成本非常高;二是很多企业的测试人员开发基础不好。因此,性能测试开发多选用C++、C#、Java等面向对象语言——因为这类语言既有成熟的集成开发工具,又有庞大的类库来支撑,测试脚本开发速度会更快。下一章将重点介绍如何用.NET来开发性能测试脚本。

    Java虚拟用户适用范围非常广,归纳起来主要有两大类:一类是不太适合录制的业务功能点的性能测试,例如网页上Http文件的下载过程、视频播放等;另一类是基于Java语言开发的应用系统的性能测试,这类应用更适合采用Java虚拟用户进行测试。

    用Java Vuser实现无法录制的测试需求

    这类测试需求往往关注于对服务器产生的压力,重点测试在一定压力下服务器的负载情况,为评估、部署、调优系统提供参考。在这类测试工作中,Java的作用仅是一门语言,用于辅助测试人员完成测试程序的开发。

    在性能测试工作中,不能录制的测试点很多,主要有以下几类:

    l  含有控件的Web应用

    在Web应用中,很多包含一些插件的浏览器应用经常不能录制。这类应用往往涉及很多协议,因此录制起来不是特别方便。

    对于这类应用,可以用Java语言调用其功能来完成用户行为的模拟。

    l  一些和媒体播放、文件下载等相关的应用

    媒体播放或文件下载等过程的录制往往不容易控制,如果是应用基于P2P的协议,则会更加复杂。因此,这类测试只能由测试人员开发虚拟用户脚本来完成。

    用Java Vuser测试基于Java语言的应用系统性能

    相比前面,基于Java语言开发的应用系统,在性能测试中采用Java虚拟用户更显得“门当户对”。这类虚拟用户主要应用在下面两类测试中:

    l  核心算法或业务的执行效率

    对银行、电信等大型的基于J2EE的架构应用系统中,开发阶段的性能测试是必不可少的。为了降低后期遇到性能问题的风险,往往在开发阶段进行一些核心业务的性能测试。这些核心业务或要求较高的执行效率,或者要求支持较多用户的并发。因此,可以利用Java Vuser来测试这些业务的执行效率。

    l  Java应用中不能录制的业务模块

    很多时候,一些J2EE架构的业务系统用 LoadRunner录制起来不是特别方便,例如一些Java智能客户端程序。这时可以手工编写测试代码,完成测试任务。与非Java应用相比,Java 应用中不能录制的业务功能更适合采用Java虚拟用户,因为可以直接对一些方法进行调用。

    由于Java语言的强大功能,Java虚拟用户的应用远不止上面这些,读者可以慢慢挖掘。

  • loadrunner中运行java代码

    2008-10-12 20:35:01

    概要步骤:

    1.在eclipse建立java工程,编译要使用的java方法;

    2.打开loadrunner,新建立脚本选择java脚本模式;

    3.找到脚本存放的文件夹,把步骤1中整个的编译后的目录(class文件所在的整个目录)放如脚本文件夹中,

      loadrunner就可以使用该java方法;

     Java脚本开发基础

    要想掌握Java虚拟用户的使用,测试脚本开发人员至少需要两方面的技能:一是具有Java语言方面的技能,并熟练使用至少一种Java集成开发工具,例如Eclipse;二是掌握LoadRunner的Java API,Java API是访问Vuser函数的基础,通过LoadRunner的Java API可以在脚本中很容易地创建事务与并发点、获取用户信息等功能。

    不难看出,Java虚拟用户要求测试脚本开发人员具有良好的开发基础,否则Java Vuser很难发挥应有的作用。限于篇幅,本节在Java测试开发基础部分,仅对Java语言方面的知识做概要介绍,读者可以通过Java方面的书籍进行学习;在LoadRunner的Java API部分,将会介绍一些相对重要的方法。

    Java虚拟用户开发基础

    Java语言基础

    Java语言博大精深,即使资深的Java开发工程师也未必敢自称精通,测试人员就更不容易成为“高手”了。但是如果仅仅为了满足测试开发,还是很容易快速入门的。表7-1列出了一些进行Java虚拟用户开发的知识点,读者可以自行学习。

    表7-1  Java语言基础知识

    知识点

    详细内容

    Java背景知识

    ²  Java历史及发展、语言特点

    ²  Java开发环境、程序工作原理

    续表

    知识点

    详细内容

    Java语言基础

    ²  Java数据类型

    ²  Java运算符与表达式、控制语句

    ²  Java类定义规范

    ²  Java数组

    ²  Java的包

    Java与面向对象技术

    ²  面向对象的概念

    ²  Java中的类、方法和变量

    ²  Java名字空间及访问规则

    ²  Java中的抽象类、接口和程序包

    ²  对象的构造方法

    Java中的数据结构

    ²  Java数组

    ²  向量

    ²  字符串

    输入/输出处理 

    ²  I/O流概述

    ²  字节流

    ²  字符流

    例外处理(Exception)

    ²  例外的概念

    ²  例外的分类

    ²  捕获例外

    ²  声明例外

    ²  抛出例外

    多线程

    ²  多线程基本概念

    ²  创建线程的方式

    ²  线程的生命周期及控制

    ²  线程的调度

    ²  多线程的互斥与同步

    ²  线程组

    Java基本网络编程

    ²  Java与Internet

    ²  使用InetAddress

    ²  使用URL

    ²  Socket通信、数据报通信

    JDBC

    ²  JDBC基础、JDBC驱动程序

    ²  JDBC编程

    续表

    知识点

    详细内容

    Java Servlet

    ²  Servlet基本概念

    ²  Servlet API

    ²  Servlet执行过程与生命周期

    ²  容器、部署与运行

    Java Server Page(JSP)

    ²  JSP基础、JSP语法

    测试人员在掌握了上面这些技能后,基本可以进行Java虚拟用户的开发了。同时,本着学无止境的原则,测试人员仍要以积极的态度来学习Java开发知识。

    Java集成开发工具Eclipse

    Eclipse是一个与NetBeans、Sun ONE Studio和Borland Jbuilder类似的,一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一。IBM一直在大力支持该项目的发展,并在2001年 11月宣布投入4千万美元到该项目的研发,这也是Eclipse项目发展较快的原因之一。

    Eclipse专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目组成,具体包括四个组成部分:Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。

    Eclipse SDK(软件开发包)是Eclipse Platform、JDT和PDE所生产的组件合并,它们可以从eclipse.org网站(http://www.eclipse.org /downloads)上下载。这些组件提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse项目生产的工具和来自其他开放源代码的第三方软件组合而成。

    在接下来的内容里,将介绍用Eclipse创建与编译Java类文件的过程以及如何在Java虚拟用户中调用编译好的类文件。关于Eclipse更深入的内容请读者参考其相关书籍。

    l  创建Java项目

    启动Eclipse后,依次选择菜单的“文件”→“新建”→“项目”,进入图7-7所示的界面。

    图7-7  新建项目

    在图7-7中选择Java项目,单击“下一步”,进入图7-8所示的界面。

    图7-8  配置项目

    在图7-8的“项目名称”输入“LoadRunnerDev”,“位置”下选择“在外部位置创建项目”,目录下选择“D:\LoadRunner”。然后点击“配置缺省值(O)...”,进入图7-9所示的界面。

    图7-9  配置缺省值

    在图7-9的“源和输出文件夹”处选择“文件夹(F)”,“源文件夹名(S):”默认为“src”,无须改变,在“输出文件夹名(O):”处输入“classes”,完成后返回图7-8所示界面。在图7-8中点击“下一步”,进入图7-10所示的界面。

    图7-10  配置结果界面

    在图7-10中,单击“完成”,新建Java项目工作完成。在图7-11中可以看到新建的项目“LoadRunnerDev”。

    图7-11  包资源管理器

    l  建立Java文件

    如图7-12所示,在LoadRunnerDer中选中“src”,点击鼠标右键,进入“新建”,点击“类”,进入图7-13所示的新建Java类文件设置界面。

    图7-12  新建Java类文件

    在图7-13中,输入包名称“com.lr.test”、类名称“HelloWord”,其他各项设置默认即可。点击“完成”,进入源代码编辑界面,如图7-14所示。

    图7-13  文件基本配置信息

    图7-14  文件编辑界面

    在源代码编辑界面,输入测试语句“System.out.println("HelloWord!");”如图7-14所示。代码编辑完成后,按照图7-15编译与运行程序。如果编译执行成功,可以在Eclipse的控制台看到输出结果,如图7-16所示。

    图7-15  执行Java程序

    图7-16  查看编译结果

    l  编译与运行Java程序

    编译后的class文件可以在“D:\LoadRunner\classes\com\lr\test”下找到,如图7-16所示。需要注意的是,类文件的存放路径是根据建立项目的设置来决定的。

    l  开发虚拟用户脚本

    进入到“D:\LoadRunner\classes”目录下,把整个“com”文件夹复制到“C:\j2sdk1.4.1\lib”,这样LoadRunner创建的所有Java Vuer脚本均可以直接调用;如果放到虚拟用户脚本的当前路径下,则只有当前的虚拟用户脚本可以调用。多台主机进行并发测试时,应该把编译好的类文件放到对应的虚拟用户脚本目录下。根据图7-1和图7-2所示新建一个Java虚拟用户脚本,并对照图7-17,输入同样的测试脚本,尤其要在代码开始处输入包的导入语句“import com.lr.test.*;”。

    图7-17  Java虚拟用户示例脚本

    l  运行虚拟用户脚本

    点击Virtual User Generator 工具栏上的  图标开始执行脚本。正确的执行结果如图7-18所示,可以看到执行日志中有“System.out: HelloWord!”。如果运行不正确,读者可以参照前面的过程进行分析,同时检查JDK的路径设置。

    图7-18  正确执行的虚拟用户脚本

    与 C Vuser脚本相比,Java Vuser 脚本是先编译再执行,而C Vuser脚本是解释性的。VuGen在JDK安装路径内查找javac编译器,并在脚本内编译Java代码。该阶段由VuGen窗口底部的“正在编译... ”状态消息来指示。如果在编译期间出错,则这些错误将在执行日志中列出。

    测试脚本保存后,接下来可以放到Controller中来运行,读者可以自己进行实验。需要注意的是,如果进行多台计算机联机测试,则所有运行测试脚本的客户机必须安装JDK环境并正确设置路径,否则将会出现如图7-19所示的提示。

    图7-19  JDK环境不正确的提示

    要想正确使用Java虚拟用户,首先要保证测试环境配置正确。执行测试时,可以先用本节的示例程序来检查环境是否正确,然后再进行复杂功能的开发。

    LoadRunner的Java API

    LoadRunner为访问Vuser函数提供了特定的 Java API,这些函数都是lrapi.lr类的静态方法。借助Java API可以大大增强Java虚拟用户脚本的可用性。本节将介绍常用的Java API的用法,更多的函数及其用法读者可以参考LoadRunner联机手册。

    在Java虚拟用户中,Java API函数的用法与Vuser函数中的用法基本一致,只是写法稍稍不同,更符合Java语言的特点。

    1. 事务函数(Transaction Functions)

    (1)int lr.start_transaction( String transaction_name ):标记事务开始;

    (2)int lr.end_transaction ( String transaction_name, int status ):标记事务结束。

    2. 信息函数(Informational Functions)

    (1)String lr.get_group_name( ):返回 Vuser 组的名称;

    (2)String lr.get_host_name( ):返回执行 Vuser 脚本的负载生成器的名称;

    (3)String lr.get_master_host_name ( ):返回运行Controller计算机的名称;

    (4)int lr.get_scenario_id( ): 返回当前方案的ID;

    (5)int lr.get_vuser_id( ) :返回当前 Vuser 的ID。

    3. 运行时函数(Run-Time Functions)

    (1)void lr.peek_events ( );:指示可以暂停Vuser 脚本的位置;

    (2)int lr.rendezvous( String rendezvous_name ):在 Vuser 脚本中设置集合点;

    (3)void lr.think_time( double time ):暂停脚本执行,模拟实际用户操作之间的思考时间。

    4. 字符串函数(String Functions)

    (1)String lr.eval_string ( String instring ):用当前值替换参数;

    (2)int lr.eval_int ( String name ):用整型值替换参数;

    (3)int lr.next_row ( String dat_file ):指示使用指定参数的下一行数据。

    5. 消息函数(Message Functions)

    (1)int lr.debug_message( int message_level, String message):向输出窗口发送测试过程的调试消息;

    (2)int lr.error_message ( String message ):向Vuser日志文件和输出窗口发送错误消息以及位置的详细信息;

    (3)int lr.log_message ( String message ):向 Vuser 日志文件发送消息;

    (4)int lr.message ( String message ):向输出窗口发送消息;

    (5)int lr.output_message ( String message ):向日志文件和输出窗口发送消息和位置信息;

    (6)int lr.vuser_status_message ( String message ):向Controller窗口中的“Vuser状态”区域发送消息。


     

     

  • LoadRunner函数小全

    2008-10-09 17:40:40

     给出一部分常用的LoadRunner函数,供大家参考。  

    LR函数:

    lr_start_transaction

    为性能分析标记事务的开始

    lr_end_transaction

    为性能分析标记事务的结束

    lr_rendezvous

    在 Vuser 脚本中设置集合点

    lr_think_time

    暂停 Vuser 脚本中命令之间的执行 

    lr_end_sub_transaction

    标记子事务的结束以便进行性能分析

    lr_end_transaction

    标记 LoadRunner 事务的结束

    Lr_end_transaction("trans1",Lr_auto);

    lr_end_transaction_instance

    标记事务实例的结束以便进行性能分析

    lr_fail_trans_with_error

    将打开事务的状态设置为 LR_FAIL 并发送错误消息

    lr_get_trans_instance_duration

    获取事务实例的持续时间(由它的句柄指定)

    lr_get_trans_instance_wasted_time

    获取事务实例浪费的时间(由它的句柄指定)

    lr_get_transaction_duration

    获取事务的持续时间(按事务的名称)

    lr_get_transaction_think_time

    获取事务的思考时间(按事务的名称)

    lr_get_transaction_wasted_time

    获取事务浪费的时间(按事务的名称)

    lr_resume_transaction

    继续收集事务数据以便进行性能分析

    lr_resume_transaction_instance

    继续收集事务实例数据以便进行性能分析

    lr_set_transaction_instance_status

    设置事务实例的状态

    lr_set_transaction_status

    设置打开事务的状态

    lr_set_transaction_status_by_name

    设置事务的状态

    lr_start_sub_transaction

    标记子事务的开始

    lr_start_transaction

    标记事务的开始

    Lr_start_transaction("trans1");

    lr_start_transaction_instance

    启动嵌套事务(由它的父事务的句柄指定)

    lr_stop_transaction

    停止事务数据的收集

    lr_stop_transaction_instance

    停止事务(由它的句柄指定)数据的收集

    lr_wasted_time

    消除所有打开事务浪费的时间

    lr_get_attrib_double

    检索脚本命令行中使用的 double 类型变量

    lr_get_attrib_long

    检索脚本命令行中使用的 long 类型变量

    lr_get_attrib_string

    检索脚本命令行中使用的字符串

    lr_user_data_point

    记录用户定义的数据示例

    lr_whoami

    将有关 Vuser 脚本的信息返回给 Vuser 脚本

    lr_get_host_name

    返回执行 Vuser 脚本的主机名

    lr_get_master_host_name

    返回运行 LoadRunner Controller 的计算机

    lr_eval_string

    用参数的当前值替换参数

    lr_save_string

    将以 NULL 结尾的字符串保存到参数中

    lr_save_var

    将变长字符串保存到参数中

    lr_save_datetime

    将当前日期和时间保存到参数中

    lr _advance_param

    前进到下一个可用参数

    lr _decrypt

    解密已编码的字符串

    lr_eval_string_ext

    检索指向包含参数数据的缓冲区的指针

    lr_eval_string_ext_free

    释放由 lr_eval_string_ext 分配的指针

    lr_save_searched_string

    在缓冲区中搜索字符串实例,并相对于该字符串实例,将该缓冲区的一部分保存到参数中

    lr_debug_message

    将调试信息发送到输出窗口

    lr_error_message

    将错误消息发送到输出窗口

    lr_get_debug_message

    检索当前消息类

    lr_log_message

    将消息发送到日志文件

    lr_output_message

    将消息发送到输出窗口

    lr_set_debug_message

    设置调试消息类

    lr_vuser_status_message

    生成带格式的输出,并将其写到 ControllerVuser 状态区域

    lr_message

    将消息发送到 Vuser 日志和输出窗口

    lr_load_dll

    加载外部 DLL

    lr_peek_events

    指明可以暂停 Vuser 脚本执行的位置

    lr_think_time

    暂停脚本的执行,以模拟思考时间(实际用户在操作之间暂停以进行思考的时间)

    lr_continue_on_error

    指定处理错误的方法

    lr_continue_on_error (0);lr_continue_on_error (1);

    lr_rendezvous

    在 Vuser 脚本中设置集合点

    TE_wait_cursor

    等待光标出现在终端窗口的指定位置

    TE_wait_silent

    等待客户端应用程序在指定秒数内处于静默状态

    TE_wait_sync

    等待系统从 X-SYSTEM 或输入禁止模式返回

    TE_wait_text

    等待字符串出现在指定位置

    TE_wait_sync_transaction

    记录系统在最近的 X SYSTEM 模式下保持的时间

     

    WEB函数列表:

    web_custom_request

    允许您使用 HTTP 支持的任何方法来创建自定义 HTTP 请求

    web_image

    在定义的图像上模拟鼠标单击

    web_link

    在定义的文本链接上模拟鼠标单击

    web_submit_data

    执行“无条件”或“无上下文”的表单

    web_submit_form

    模拟表单的提交

    web_url

    加载由“URL”属性指定的 URL

    web_set_certificate

    使 Vuser 使用在 Internet Explorer 注册表中列出的特定证书

    web_set_certificate_ex

    指定证书和密钥文件的位置和格式信息

    web_set_user

    指定 Web 服务器的登录字符串和密码,用于 Web 服务器上已验证用户身份的区域

    web_cache_cleanup

    清除缓存模拟程序的内容

    web_find

    在 HTML 页内搜索指定的文本字符串

    web_global_verification

    在所有后面的 HTTP 请求中搜索文本字符串

    web_image_check

    验证指定的图像是否存在于 HTML页内

    web_reg_find

    在后面的 HTTP 请求中注册对 HTML源或原始缓冲区中文本字符串的搜索

    web_disable_keep_alive

    禁用 Keep-Alive HTTP 连接

    web_enable_keep_alive

    启用 Keep-Alive HTTP 连接

    web_set_connections_limit

    设置 Vuser 在运行脚本时可以同时打开连接的最大数目

    web_concurrent_end

    标记并发组的结束

    web_concurrent_start

    标记并发组的开始

    web_add_cookie

    添加新的 Cookie 或修改现有的 Cookie

    web_cleanup_cookies

    删除当前由 Vuser 存储的所有 Cookie

    web_remove_cookie

    删除指定的 Cookie

    web_create_html_param

    将 HTML 页上的动态信息保存到参数中。(LR 6.5 及更低版本)

    web_create_html_param_ex

    基于包含在 HTML 页内的动态信息创建参数(使用嵌入边界)(LR 6.5 及更低版本)。

    web_reg_save_param

    基于包含在 HTML 页内的动态信息创建参数(不使用嵌入边界)

    web_set_max_html_param_len

    设置已检索的动态 HTML 信息的最大长度

    web_add_filter

    设置在下载时包括或排除 URL 的条件

    web_add_auto_filter

    设置在下载时包括或排除 URL 的条件

    web_remove_auto_filter

    禁用对下载内容的筛选

    web_add_auto_header

    向所有后面的 HTTP 请求中添加自定义标头

    web_add_header

    向下一个 HTTP 请求中添加自定义标头

    web_cleanup_auto_headers

    停止向后面的 HTTP 请求中添加自定义标头

    web_remove_auto_header

    停止向后面的 HTTP 请求中添加特定的标头

    web_revert_auto_header

    停止向后面的 HTTP 请求中添加特定的标头,但是生成隐性标头

    web_save_header

    将请求和响应标头保存到变量中

    web_set_proxy

    指定将所有后面的 HTTP 请求定向到指定的代理服务器

    web_set_proxy_bypass

    指定 Vuser 直接访问(即不通过指定的代理服务器访问)的服务器列表

    web_set_proxy_bypass_local

    指定 Vuser 对于本地 (Intranet) 地址是否应该避开代理服务器

    web_set_secure_proxy

    指定将所有后面的 HTTP 请求定向到服务器

    web_set_max_retries

    设置操作步骤的最大重试次数

    web_set_timeout

    指定 Vuser 等待执行指定任务的最长时间

    web_convert_param

    将 HTML 参数转换成 URL 或纯文本

    web_get_int_property

    返回有关上一个 HTTP 请求的特定信息

    web_report_data_point

    指定数据点并将其添加到测试结果中

    web_set_option

    在非 HTML 资源的编码、重定向和下载区域中设置 Web 选项

    web_set_sockets_option

    设置套接字的选项

  • loadrunner脚本学习(1)

    2008-10-09 14:24:16

    VuGen脚本文件的开发过程

    1。定义测试项目的目标,环境,脚本,测试数据,硬件等。脚本应该符合编码规范或编码习惯。

    2。创建一个版本文件夹来保存被测应用程序相关的各种不同资源,例如截获的.png/.gif图形文件,录制过程保存的html文件,录制中的所有html源文件和VuGen的录制日志

    3。列出(在表里)每一个手动操作业务过程需要的实际步骤

    1)截取每一个屏幕图像(screen image )。

    2)为每一个屏幕(screen)分配一个唯一的事务名称。

    3)为处理的每一个步骤使用的技术组件(URL或者方法和函数)做注释。

    4。创建一个版本文件夹。

    注:我不喜欢使用默认位置,我喜欢把所有脚本相关的文件放到一个相同的文件夹中。不幸的是,这意味着如果我在不同的测试间互相交换录制,那我每次都得记住修改默认的设置。

    注:当录制一个新的脚本时,我喜欢选择多协议而不是单个协议。。。

    5。根据你的业务处理列表上指定的用户使用步骤和screen的顺序来使用VuGen录制程序,产生一系列脚本代码。在“开始录制”对话框中

      * 使用COM/DCOM 协议时,选择“Win32应用程序“

      * 使用Web(HTTP/HTML)时,选择“Internet Application“

    6。根据改进脚本方法和脚本语言规则来修改脚本。

       改进脚本的方法:

       1)为每一个GUI的screen添加事务语句来获得事务时间。

       2)添加显示数据来帮助调试。

       3)添加验证点来验证是否期望的文本或者图片在每个脚本执行后显示。

       4)通过插入新参数和动态获得整个文件的方式对硬编码的URL,用户id,用户密码和其他的变量数据进行参数化。这样脚本中的参数就可以被动态的替换,以此来模拟运行时不同数据的使用。

       5)添加重试逻辑(retry logic)来处理不可见的错误。

       6)添加随机函数发生器变化脚本来模拟真实的负载。

       7)添加if/else逻辑来检查结果,或者来进行合适的操作,或者来在合适的时候退出脚本。

       8)在一个screen中添加语句来捕获需要在其他命令中使用的数据。当使用Microsoft .NET的web form技术的时候,需要避免习惯性的“脚本超时“错误。

       9)添加语句来调用外部库函数,以便保存和检索在内存Virtual Table Server中的数据。

       10)处理XML.

       11)添加语句来模仿客户端的Javascrīpt问题。

       12)添加语句来管理超时。

       13)从事务计时器中计算和减去无效的时间。

       14)输出日志。

       15)添加集合点。

       16)添加时间(Timing)。

    脚本语言规则:

        把cookie代码标注出来(因为脚本运行的时候他们被再次执行)。

    7。通过在VuGen中运行来调试和调整脚本(单个用户),同时运行时设置的日志能够显示如下信息:

        辨别和解决脚本编辑错误。

        决定timing.

        设置初始运行设置的场景。

    8。在控制器中使用full test Runtime Settings来运行脚本。

    脚本录制和产生:

    建立一个新脚本的第一步是选择一个单协议或多协议。

        * 一些协议可能在多协议模式下不能用。 

        * 只有在多协议的GUI下你才能重新排列action

     在使用Java协议之前,确保你在环境变量的路径下有JDK,否则你可能会遇到这个错误:

       Error: Failed to find javac.exe Java Compiler in Path and JDK installation folder   in registry. [MsgId: MERR-22981] 51Testing软件测试网Q qB7oO M}
       Error: Failed to get JRE version. Check that your PATH environment variable contains \bin directory. [MsgId: MERR-22986]

    当选择Java协议的时候:

       * 只有选择了“RMI Java”才能录制。

       * 如果选择“Java user”,“开始录制”图标或菜单是灰色的。

    当你打开一个新的脚本时,默认的脚本名称为“noname1”。下一个新的脚本名称为“noname2”,以此类推。

    注:有顺序的录制多个动作(而不是录制一个动作,然后停止开始另一个动作)。这样能使你识别出在你脚本中需要关联的序列码(在例如PeopleSoft的程序中)。

    注:每次修改脚本后,脚本都需要重新编译。

    Java:略

    脚本文件的调用:

        VuGen是默认在你双击.usr后缀文件的时候被调用。

         在这个文件里,Javascrīpt被指定为“Type=General-Js”。

    为了避免重新编译,我使用命令行的变量和值得组合这样的批处理文件来调用控制器。例如:

      

      REM LoadRun from LoadRunner 8.0 default installation location: 51Testing软件测试网 d"q3lWBejOv
      SET LR80=C:\Program Files\Mercury Interactive\Mercury LoadRunner\bin 51Testing软件测试网 [1z;H2W2b0I,Un{
      cd %LR80%
      .ye8{ t,^@6BnX183368wlrun.exe -TestRun c:\Temp\Scenario1.lrs
      -port 8080

    脚本文件Action

      主机上的代理发送的到服务器的请求是由虚拟用户生成器创建的(VuGen.exe)action的回放实现的。

      Loadrunner创建的脚本有三部分:

      * vuser_init 来初始化 Vuser。执行在这部分的虚拟用户的状态是"Init"

      * Action 用来重复多次迭代  执行到这部分的虚拟用户的状态是"Running"

      * vuser_end 推出虚拟用户。 执行到这部分的虚拟用户的状态是"Exiting"

    如果你的脚本只需要执行一次,你仍然需要把这些脚本写到Action部分,因为在其他部分(vuser_init 和vuser_end)有些命令是不合法的或者会忽略掉。

    VuGen允许脚本包含多个action。所以我为每一个screen创建一个新的action。

    注:如果你想使用不同的用户登陆,就不要把登陆操作放到vuser_init中,而是放到action部分。

    VuGen根据选择脚本选择协议的不同来添加不用的引用到“.h”头文件。

    C的.h头文件

    对于Web(HTTP/HTML)协议,

    创建globals.h,包含内容

    #ifndef _GLOBALS_H
    #define _GLOBALS_H

    //--------------------------
    // Include Files
    #include "lrun.h"
    #include "web_api.h"
    #include "lrw_custom_body.h"
    // recorded for web_custom_request functions.
    //--------------------------
    // Global Variables

    #endif // _GLOBALS_H

    对于COM/DCOM协议:略

    C脚本语言的格式:

    LoadRunner使用的没有进行微软扩展的ANSI C语法任意最小的action代码块如下:

    #include as_web.h // from LoadRunner's include folder.
    Action1()
    {
    	/* comment block 
    	*/
    
    	// comment line
    
    return 0;
    }
    

    C脚本编译/类库

    当VuGen编译脚本时,产生一个"pre_cci.ci"文件,这个文件包含了所有action的代码和包含文件。这就是为什么会有语法错误“not writing pre_cci.ci”的原因。

    控制器编译这些.ci文件为机器目标码。

    VuGen在每一个脚本文件中自动创建一个lib文件夹,这个文件夹中包含了combined_lib.c文件。该文件包含了所有引用文件。

      #include "lrun.h"   来定义 UNIX或者Windows的函数。
    ?lJ3m~y183368  #include "globals.h"  LoadRunner'的模版文件夹的其中一个。

      #include "vuser_init.c"
    ;z6B5T7Z] jE$c183368  #include "Action.c" 51Testing软件测试网"jP X&sKJU2O[,I
      #include "vuser_end.c"

     警告:当你使用类库中的函数却没有正确包含该类库的时候,你会收到一条错误信息:

      Error -- Unresolved symbol

    C类库

      LoadRunner 使用 A website external to this site 1994 GNU C Pre-Processor options 和 A website external to this site 1995 LCC-win32 Retargetable C Compiler/Linker from the Free Software Foundation via Chris Fraser of AT&T and Dave Hanson of Princeton.

     附加的函数定义在zip file ANSI C library中。

    外部的没有返回整型数的C函数需要在脚本的开头进行显式声明。例如,string函数中的 string tokenizer:

    extern char* strtok(char *token, const char *delimiter);

    Java语法:略


  • Media Player属性大全

    2008-10-09 13:36:35

    播放: MediaPlayer.Play()
    暂停: MediaPlayer.Pause()
    定位: MediaPlayer.SetCurrentEntry(lWhichEntry)
          MediaPlayer.Next()
          MediaPlayer.Previous()
    循环: MediaPlayer.PlayCount = 0
    0:the clip plays repeatedly
    1:once
    停止: MediaPlayer.Stop()
    ==================================
    AllowChangeDisplaySize 返回或设置最终用户是否能设置显示尺寸(逻辑型)
    AllowScan 返回或设置是否允许扫描(逻辑型)
    AnimationAtStart 返回或设置控件开始播放之前是否先播放一个动画序列(逻辑型)
    AudioStream 返回或设置音频流的编号(用于多音频流的剪辑,默认为-1)(长整型)
    AutoRewind 返回或设置媒体文件播放完毕后是否自动回绕(逻辑型)
    AutoSize 返回或设置是否自动调整控件大小来适应载入的媒体(逻辑型)
    AutoStart 返回或设置在载入媒体文件之后是否自动开始播放(逻辑型)
    Balance 返回或设置指定立体声媒体文件的播放声道(-10000为左声道,10000为右声道,0为立体声)(长整型)
    Bandwidth 返回或设置当前文件的带宽(长整型)
    BaseURL 返回基本的 HTTP URL(字符串)
    BufferingCount 返回媒体文件回放时缓冲的总时间(长整型)
    BufferingProgress 返回缓冲完成的百分比(长整型)
    BufferingTime 返回缓冲的时间(双精度型)
    CanPreview 返回或设置当前显示的剪辑是能否被预览(逻辑型)
    CanScan 返回或设置当前文件是否支持快进或快退(逻辑型)
    CanSeek 返回或设置当前文件是否能搜索并定位到某个时间(逻辑型)
    CanSeekToMarkers 返回或设置文件是否支持搜索到标签(逻辑型)
    CaptioningID 返回在标题中显示的帧或控件的名称(字符串)
    ChannelDescrīption 返回电台的描述(字符串)
    ChannelName 返回电台的名称(字符串)
    ChannelURL 返回电台的元文件的位置(字符串)
    ClickToPlay 返回或设置是否可以通过点击图像暂停或播放剪辑(逻辑型)
    ClientID 返回客户端唯一的标识符(字符串)
    CodecCount 返回文件使用的可安装的 codecs 的个数(长整型)
    ContactAddress 返回电台的联系地址(字符串)
    ContactEmail 返回电台的联系电子邮件地址(字符串)
    ContactPhone 返回电台的联系电话(字符串)
    CreationDate 返回剪辑的创建日期(日期型)
    CurrentMarker 返回或设置当前书签号码(长整型)
    CurrentPosition 返回或设置剪辑的当前位置(双精度型)
    CursorType 返回或设置指针类型(长整型)
    DefaultFrame 返回或设置控件的默认目标 Http 帧(字符串)
    DisplayBackColor 返回或设置显示面板的背景色(OLE_COLOR 值)
    DisplayForeColor 返回或设置显示面板的前景色(OLE_COLOR 值)
    DisplayMode 返回或设置显示面板是否用秒或帧的形式显示当前位置(MPDisplayModeConstants 值)
    DisplaySize 返回或设置图像显示窗口的大小(MPDisplaySizeConstant 值)
    Duration 返回或设置剪辑剪辑的播放时间(双精度型)
    EnableContextMenu 返回或设置是否允许使用上下文菜单(逻辑型)
    Enabled 返回或设置控件是否可用(逻辑型)
    EnableFullScreenControls 返回或设置全屏幕控制是否可用(逻辑型)
    EnablePositionControls 返回或设置位置控制是否可用(逻辑型)
    EnableTracker 返回或设置搜索栏控制是否可用(逻辑型)
    ErrorCode 返回当前错误代码(长整型)
    ErrorCorrection 返回当前剪辑的错误修正类型(长整型)
    ErrorDescrīption 返回当前错误的描述(字符串)
    FileName 返回或设置要播放的剪辑的文件名称(字符串)
    HasError 返回控件是否发生错误(逻辑型)
    HasMultipleItems 返回或设置控件是否包含某些多重项目的内容(逻辑型)
    ImageSourceHeight 返回或设置当前剪辑的原始图像高度(长整型)
    ImageSourceWidth 返回或设置当前剪辑的原始图像宽度(长整型)
    InvokeURLs 返回或设置 URL 是否自动发送请求(逻辑型)
    IsBroadcast 返回或设置源是否进行广播(逻辑型)
    IsDurationValid 返回或设置持续时间值是否有效(逻辑型)
    Language 返回或设置用于本地化语言支持的当前区域语言(长整型)
    LostPackets 返回丢失的数据包数量(长整型)
    MarkerCount 返回文件书签的数量(长整型)
    Mute 返回或设置控件是否播放声音(逻辑型)
    OpenState 返回控件的内容源状态(长整型)
    PlayCount 返回或设置一个剪辑播放的次数(长整型)
    PlayState 返回控件的当前操作状态(长整型)
    PreviewMode 返回或设置控件是否处在预览模式(逻辑型)
    Rate 返回或设置回放帧频(双精度型)
    ReadyState 返回控件是否准备就绪(ReadyStateConstant 值)
    ReceivedPackets 返回已接收到的数据包的数量(长整型)
    ReceptionQuality 返回最后 30 秒接收到的数据包的百分比(长整型)
    RecoveredPackets 返回已转换的数据包的数量(长整型)
    SAMIFileName 返回或设置 closed-captioning 文件名(字符串)
    SAMILang 返回或设置 closed captioning 语言(字符串)
    SAMIStyle 返回或设置 closed captioning 风格(字符串)
    SelectionEnd 返回或设置流的结束位置(双精度型)
    SelectionStart 返回或设置流的起始位置(双精度型)
    SendErrorEvents 返回或设置控件是否发送错误事件(逻辑型)
    SendKeyboardEvents 返回或设置控件是否发送键盘事件(逻辑型)
    SendMouseClickEvents 返回或设置控件是否发送鼠标单击事件(逻辑型)
    SendMouseMoveEvents 返回或设置控件是否发送鼠标移动事件(逻辑型)
    SendOpenStateChangeEvents 返回或设置控件是否发送打开状态改变事件(逻辑型)
    SendPlayStateChangeEvents 返回或设置控件是否发送播放状态改变事件(逻辑型)
    SendWarningEvents 返回或设置控件是否发送警告事件(逻辑型)
    ShowAudioControls 返回或设置是否显示音频控制(逻辑型)
    ShowCaptioning 返回或设置是否显示字幕(逻辑型)
    ShowControls 返回或设置控制面板是否可见(逻辑型)
    ShowDisplay 返回或设置是否显示显示面板(逻辑型)
    ShowGotoBar 返回或设置是否显示跳转栏(逻辑型)
    ShowPositionControls 返回或设置是否显示位置控制(逻辑型)
    ShowStatusBar 返回或设置是否显示状态栏(逻辑型)
    ShowTracker 返回或设置是否显示搜索栏(逻辑型)
    SourceLink 返回内容文件的路径(字符串)
    SourceProtocol 返回用于接收数据的协议(长整型)
    StreamCount 返回媒体帧的数量(长整型)
    TransparentAtStart 返回或设置在开始播放之前和停止之后控件是否透明(逻辑型)
    VideoBorder3D 返回或设置视频边框是否显示为 3D 效果(逻辑型)
    VideoBorderColor 返回或设置视频边框的颜色(OLE_颜色)
    VideoBorderWidth 返回或设置视频边框的宽度(长整型)
    Volume 返回或设置音量(长整型)
    ==============================================
    Mediaplayer属性和方法

    属性/方法名:说明:
    [基本属性]  
    URL:String; 指定媒体位置,本机或网络地址
    uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
    playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
    enableContextMenu:Boolean; 启用/禁用右键菜单
    fullScreen:boolean; 是否全屏显示
    [controls] wmp.controls //播放器基本控制
    controls.play; 播放
    controls.pause; 暂停
    controls.stop; 停止
    controls.currentPosition:double; 当前进度
    controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
    controls.fastForward; 快进
    controls.fastReverse; 快退
    controls.next; 下一曲
    controls.previous; 上一曲
    [settings] wmp.settings //播放器基本设置
    settings.volume:integer; 音量,0-100
    settings.autoStart:Boolean; 是否自动播放
    settings.mute:Boolean; 是否静音
    settings.playCount:integer; 播放次数
    [currentMedia] wmp.currentMedia //当前媒体属性
    currentMedia.duration:double; 媒体总长度
    currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
    currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Descrīption"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
    currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
    currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
    [currentPlaylist] wmp.currentPlaylist //当前播放列表属性
    currentPlaylist.count:integer; 当前播放列表所包含媒体数
    currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia

  • 网站相关

    2008-10-09 13:16:14

    暂无
1096/6<123456
Open Toolbar