文结合目前Internet(WEB)技术发展动向,简略介绍了Microsoft提出的ActiveX技术的内容,阐述了ActiveX技术与WEB 站点建设和桌面程序开发的关系,以及利用Visual C++和Visual Basic开发ActiveX部件的步骤和方法,并给出了在WEB网页中使用ActiveX部件的例子。
1. ActiveX概要
1.1. ActiveX的定义
ActiveX是Microsoft提出的一组使用COM(Component Object Model,部件对象模型)使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,ActiveX被广泛应用于WEB服务器以及客户端的各个方面。同时,ActiveX技术也被用于方便地创建普通的桌面应用程序。
1.2. ActiveX的内容
ActiveX既包含服务器端技术,也包含客户端技术。其主要内容是:
ActiveX控制(ActiveX Control);用于向WEB页面、Microsoft Word等支持ActiveX的容器(Container)中插入COM对象。
ActiveX文档(ActiveX Document);用于在WEB Browser或者其它支持ActiveX的容器中浏览复合文档(非HTML文档),例如Microsoft Word文档,Microsoft Excel文档或者用户自定义的文档等。
ActiveX脚本描述(ActiveX Scripting);用于从客户端或者服务器端操纵ActiveX控制和Java程序,传递数据,协调它们之间的操作。
ActiveX服务器框架(ActiveX Server Framework);提供了一系列针对WEB服务器应用程序设计各个方面的函数及其封装类,诸如服务器过滤器、HTML数据流控制等。
在Internet Explorer中内置Java虚拟机(Java Virtual Machine),从而使Java Applet能够在Internet Explorer上运行,并可以与ActiveX控制通过脚本描述语言进行通信。
1.3. ActiveX与Java的比较
ActiveX提供了一种扩展包括Java在内的任何编程语言的机制,Java的开发人员可以在Applet中使用ActiveX技术,直接嵌入 ActiveX控制,或者以ActiveX技术为桥梁,将其它开发商提供的多种语言的程序对象集成到Java中。与Java的字节码技术相比, ActiveX提供了“代码签名”(Code Signing)技术保证其安全性。
1.4. Internet Explorer和Netscape Navigator
不言而喻,Microsoft的Internet Explorer全面支持ActiveX。同时,Microsoft提供了 Netscape Navigator的插? Plug-In),从而使Navigator也可以浏览包含有ActiveX部件的WEB站点。
2. ActiveX控制和Internet
ActiveX控制是OLE控制的更新版本。控制(Control)是建立可编程部件(Component)的主要元素。ActiveX控制可以用于所有支持COM规范的容器中,或者作为Internet控制嵌入到WEB页面中。用户访问该页面时将下载该控制并自动在本地注册。利用脚本描述语言(Script)可以在控制之间以及客户与服务器之间通过设置属性(Property)、调用方法(Method)和激活事件(Event)进行通信。
ActiveX控制与以前的OLE控制相比,具有更少的接口,并且可以没有窗口。所有的ActiveX控制都支持IUnknown接口。
目前,很多第三方开发商编制了各式各样的ActiveX控制。在Internet上,有超过1000个ActiveX控制供用户下载使用。在 WINDOWS的SYSTEM目录下,保存有很多Window提供的ActiveX控制。Microsoft Visual C++(以下简称VC)提供的MFC(Microsoft Foundation Classes)控制都是ActiveX控制。
考虑到当前Internet相对较低的传输速率,设计运行于Internet的ActiveX控制时,必须考虑以下几个问题:
控制尽可能小;
持续存储数据(Persist Data)如何保存;
如何在Internet上下载和安装;
控制如何在客户端注册;
3. ActiveX文档和Internet
ActiveX文档提供了传统的嵌入对象的扩展方法。ActiveX文档对象可以包含多个页,显示在整个客户区中,并支持原有的菜单功能。与以往的嵌入对象不同的是,ActiveX文档对象不再以一个阴影方框包围来显示,而是全框架(Full Frame),并总处于激活状态。
Microsoft Office97提供了Microsoft Office Binder,用来生成并浏览由Microsoft Word、 Microsoft Excel或者用户定义的ActiveX文档等构成的复合文档,每一种文档类型都可以直接进行编辑修改。 ActiveX文档可以作为对象嵌入到WEB网页中,在WEB上发布。
4. ActiveX脚本描述语言
利用VBScript或者Microsoft JScript,可以向Web页面中加入可用于交互的ActiveX控制,将数据预处理或者检验过程放在客户端进行,然后将结果传往WEB服务器。
5. ActiveX服务器框架
在WEB服务器上创建扩展应用程序,动态生成WEB页面。使用MFC提供的ISAPI类可以方便地建立WEB服务器端的扩展应用程序。
6. Visual C++ 5.0对ActiveX的支持
VC++ 5.0(企业版)为Internet开发提供了完整的解决发案,其内容是:
使用MFC或者ATL开发ActiveX控制和ActiveX文档。
使用ISAPI设计WEB服务器端的部件。
使用WinInet 开发通过Internet存取文件的应用程序。
使用Asynchronous Monikers生成从Internet下载数据的应用程序。
使用ActiveX SDK开发其它类型的基于Internet的Win32应用程序,包括ActiveX Scripting Host,Microsoft WebConferencing等。
6.1. 用VC5.0开发ActiveX控制
VC++5.0提供两个途径开发ActiveX控制:MFC和ATL(Active Template Library)。使用MFC,可以不必理会控制接口的细节,把注意力集中在控制本身的功用上,但是生成的控制比较大。而且,客户端如果要运行此ActiveX控制,必须拥有相应版本的MFC类库的 DLL,否则,必须同时下载这些巨大的类库;使用ATL,由于不涉及MFC的标准类库,生成的控制相对较小,但开发者必须了解COM、OLE技术的细节。大多数情况下,可以使用MFC开发ActiveX控制,这样比较容易。而且,由于Internet Explorer 3.0提供了MFC 4.1的类库,而Internet Explorer 3.0是Windows95提供的组件,所以,只要ActiveX控制使用的是MFC 4.1或者更早的版本,多数情况下不需要下载MFC的类库。
使用MFC开发ActiveX控制,可以用MFC ActiveX Control Wizard生成工程框架。VC会自动产生三个类:(假设MyName是控制的名字。)
CMyNameApp:从类COleControlModule派生,而类COleControlModule则派生自CWinApp;
CMyNameCtrl:从类COleControl派生,而类COleControl则派生自CWnd;
CMyNamePropPage:从类COlePropertyPage派生,而类COlePropPage则派生自CDialog;
可以看出,这个框架与一般的MFC应用程序有些类似。开发人员的大部分工作在CMyNameCtrl中,例如用Class Wizard添加属性、方法和事件,处理显示等。
编译生成OCX文件后,用VC提供的ActiveX Test Container测试这个控制,也可以用OLE/COM Object Viewer浏览此控制的接口信息及类型库。
6.2. ActiveX控制在WEB上的应用
考虑到WEB的安全性,为了在服务器与客户端建立良好的信任关系,必须为每个在WEB上使用ActiveX控制设置一个“代码签名” (Code Signing)。VC5.0提供了生成供测试用的“代码签名”的工具。如果要正式发布,则必须向有关机构申请。(参见http: //www.microsoft.com/intdev/signcode/)
在WEB页面中使用ActiveX控制,还要对之进行包装,将有关的动态连接库及信息文件压缩到一个扩展名为CAB(Cabinet)文件中。可以使用VC5.0提供的工具包装ActiveX控制。在HTML文件中,使用OBJECT标签插入ActiveX控制,并利用VBScript或者 JScript访问该ActiveX控制。客户端用Internet Explorer浏览此页面时,可以自动解包该文件。出于安全性的考虑, Internet Explorer为ActiveX 部件的下载、初始化、是否拥有合法的代码签名以及是否允许Scripting等设置了不同的安全级别,用户可根据需要进行设置。下面这个例子中,使用了ActiveX控制“MSChart.OCX",当用鼠标单击此控制时,控制的标题将改变。
ID=chart1 WIDTH=400 HEIGHT=200
ALIGN=center>
其中,Object ID是这个ActiveX DLL中某个类的名字。当此WEB页面被下载并显示时,MyClass类的方法LogIn将被调用,并在客户端显示LogIn对话框。
7.3. Visual Basic 6.0
Microsoft计划于1998年9月推出Visual Basic 6.0。目前Beta版正在测试。VB 6.0与VB5.0相比,除继续支持 Internet Explorer Document Object Model(DOM)开发之外,将提供两个令人兴奋的新功能:
Dynamic HTML编辑器
开发人员可以象编制普通VB程序一样,制作DHTML文件或模板。
WebClasses;
开发人员可以在WEB服务器端建立与ASP文件一一对应的WebClass类,每个类都可以访问ASP对象,在Visual Basic IDE中跟踪调试,并生成 ISAPI 动态连接库。
8. 小结
正如Internet和WEB技术一样,ActiveX技术的发展日新月异,新的更强大的开发工具使得服务器及客户端的应用开发、网站建设变得更简单,并容易扩展和重用。随着Microsoft的包括Windows NT、Internet Information Server、 Active Server Pages以及Microsoft FrontPage、Internet Explorer等组件在内完整的 Internet解决方案被广泛使用,ActiveX技术将会有更大的发展。
参考文献:
1. Visual C++技术内幕(第二版),[美]David J. Kruglinski著,王国印译,清华大学出版社。
2. ActiveX开发人员指南,[美]Eric Tall,Mark Ginsburg著,章巍等译,机械工业出版社。
3. Visual Basic 6.0:You Wont Believe What Just Hit the Web, Joshua Trupin,Microsoft Interactive Network Developer(MIND),1998年8月。
4. Introduction to ActiveX Controls,Microsoft Corp.,MSDN,1998年8月。
5. Dynamic HTML and the Big Picture,John Swenson,MSDN Online,1997年11月。
6. A Brief Preview of the Visual Basic 5.0 Development Environment,Michael Otey,Windows NT Magazine ,1997年4月。
7. http://www.microsoft.com/,Microsoft公司,包括MSDN、MSJ等技术资源。
8. http://www.ActiveX.com,第三方开发的ActiveX控制。
9. http://www.Active-X.com,有关ActiveX技术的文档资料。
10. http://www.WinntMag.com,Windows NT Magazine杂志。
弈安传媒科技微课堂,每天分享财经资讯,计算机技术知识,人生感悟,创业指导以及各种专业技术知识资料学习交流.移动学习平台、知识分享平台。随时随地的学习,如果你喜欢成长,这里你不容错过的地方.弈安传媒科技培训关注:关注自己成长,分享内容,分享自己的技术,成就未来.
[弈安传媒科技提升自己的平台]请关注:头条号及公众号 弈安传媒科技
eb 设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML 等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML 的版本问题外,不同的脚本语言,例如Java、JavaScript、ActiveX、VBScript 或Perl 等,也要进行验证。
在设计Web 系统时,使用不同的脚本语言给系统带来的影响也不同,如HTML 的不同版本对Web 系统的影响就不同。关于设计语言的测试,应该注意以下几个方面:
(1)与浏览器的兼容性。由于不同的浏览器内核引擎不同,导致不同的开发语言与浏览器的兼容情况不同,当前主流浏览器的引擎有Trident、Tasman、Pesto、Gecko、KHTML、WebCore 和WebKit。
(2)与平台的兼容性。不同脚本语言与操作系统平台的兼容性也有所不同,测试过程中必须考虑对不同操作系统平台的兼容,即脚本的可移植性。
(3)执行时间。由于不同脚本语言执行的方式不同,所以其执行的时间也不同。
(4)嵌入其他语言的能力。有一些操作脚本语言无法实现,如读取客户端的信息,此时即需要使用其他语言来实现,即测试过程中应该考虑当前脚本语言对其他语言的支持程度。
(5)数据库支持的程度。考虑系统数据库可能升级的问题,测试时需要考虑脚本语言支持数据库的完善程度。
接下来我们说说回归测试:
回归测试是软件测试中不可忽视的一部分,回归测试是对旧代码修改后,重新进行测试并确认修改没有引入新错误,或者导致其他代码出现错误。自动化回归测试将大大降低系统测试、维护升级等阶段的成本。作为软件生命周期的一部分,回归测试在整个软件测试过程中占据着相当大的工作量,在软件开发的每个阶段都要进行多次回归测试。
为了提高回归测试的效率和有效性,选择正确的回归测试策略是非常有意义的,选择回归测试应兼顾效率与有效性两方面,那么常用的方法有哪些?
1.重新测试整个案例
从基线测试用例库中选择全部测试用例组成回归测试包,这是一种比较安全的方法,再次测试所有用例具有较低的遗漏回归错误风险,但测试成本较高。
2.根据风险选择测试
从基准测试用例库中选择回归测试包,基于一定的风险标准。从运行更重要的、关键的和可疑的测试开始,而忽略那些不重要的、低优先级的或者高稳定性的测试用例,这些测试用例在只有三到四级甚至更严重的情况下进行测试。
3.基于作业面选择检验
若基线测试用例库的测试用例是根据软件操作曲线开发的,测试用例的分布情况反映了系统的实际使用情况。通过测试预算,回归测试使用的测试用例的数量可以确定回归测试,回归测试可以优先选择那些具有重要或经常使用功能的测试用例,并且能够降低和减轻高级风险,帮助尽早发现那些影响可靠性的故障。
4.重新检验修改部分
如果测试者对修改的局部化有足够的认识,那么通过相关分析就可以识别软件的变化并分析修改的影响,将回归测试限制在被修改的模块及其界面上。常常,回归错误必须包含新的、修改的或删除的代码片段。如果条件允许,回归测试尽可能覆盖受影响。
最后,关于软件测试学习,offer选择等等,都可以通过后台私信交流。需要学习资料或者帮忙修改简历也可以私信!!也可百度搜索“特斯汀软件测试腾讯课堂”或关注公众号“特斯汀软件测试”,里面涵盖很多精彩免费视频或干货知识
多人问我,web项目测试需要从哪几方面进行测试才不会遗漏?因此小编整理了五大项必须要测的内容,希望对大家有所帮助!
测试项目一、功能测试
1、链接测试
链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。
链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。
2、表单测试
当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。
3、Cookies测试
Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。
如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。
4、设计语言测试
Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。
5、数据库测试
在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。
在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。
测试项目二、性能测试
1、连接速度测试
用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。
另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。
2、负载测试
负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
3、压力测试
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。
进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
压力测试的区域包括表单、登陆和其他信息传输页面等。
测试项目三、可用性测试
1、导航测试
导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?
在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。
导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。
Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。
2、图形测试
在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
(1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。
(2)验证所有页面字体的风格是否一致。
(3)背景颜色应该与字体颜色和前景颜色相搭配。
(4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。
3、内容测试
内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。
信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的”拼音与语法检查”功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓”相关文章列表”。
4、整体界面测试
整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。
对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。
测试项目四、客户端兼容性测试
1、平台测试
市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。
因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。
2、浏览器测试
浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。
测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。
测试项目五、安全性测试
Web应用系统的安全性测试区域主要有:
(1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
(2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。
(3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。
(4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。
(5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
备注:如有没考虑进去内容,可以评论添加,一起学习,一起交流~
*请认真填写需求信息,我们会在24小时内与您取得联系。