自动化测试actionword方式优缺点
AutoRunner是黑盒测试工具,可以用来完成功能测试、回归测试,可以提高测试效率,降低测试人工成本。
自动化测试是当今测试发展的方向,能够帮助软件开发团队实现:● 节省测试时间自动测试通过执行测试脚本来实现测试自动化,单个脚本的执行速度比人工执行快10倍以上,能够为我们节省大量的测试时间,我们不必为了测试时间的deadline而加班加点。
● 24小时执行通过24小时执行模式,实现夜间执行模式,实现夜间自动执行,从而达到“每日构建测试”的目标,可以即使发现每天出现的缺陷。
项目经理及时获取项目质量数据,掌握项目进展情况。
● 降低成本自动化测试不需要人员来执行测试用例,因此可以节省大量的执行成本。
对测试人员而言,不需要发布新版本带来的加班。
对于整个产品开发团队,只使用很少的测试人员就可以达到高质量的产品,获得大量成本的节省。
产品可以对以下类型对象进行GUI功能性测试:1 Windows类型对象,一般为用C++/Delphi/VB/VFP/PB/.NetForm等技术开发的桌面程序。
2 IE网页对象,一般性的网站,比如大的门户类网站。
3 Java对象,一般为用AWT/Swing/SWT等技术开发的桌面程序。
4 Flex对象,网页的内容是用Flex开发的。
5 Silverlight对象,网页的内容是用Silverlight开发的。
6 WPF对象,一般为用WPF技术开发的桌面程序。
7 QT对象,一般为用QT技术开发的桌面程序。
VB程序中调用word
Option ExplicitDim ap As Word.Application, s As String, doc As DocumentPrivate Sub Command1_Click()Set ap = CreateObject("word.application")Set doc = ap.Documents.Open("d:\1.doc")s = doc.Content.TextPrint sEnd SubPrivate Sub Form_Unload(Cancel As Integer)doc.Closeap.QuitSet doc = NothingSet ap = NothingEnd Sub
拍戏时action什么意思?
Jacob解决Word文档的读写问题收藏Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。
使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。
Jacob下载的地址为:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368配置:(1)将解压包中的jacob.dll(x86常用,x64)拷到jdk安装目录下的jre\bin文件夹或windows安装路径下的WINDOWS\system32文件夹下(2)将jacob.jar文件拷到classpath下即可常见问题解决:对于”java.lang.UnsatisfiedLinkError: C:\WINDOWS\system32\jacob-1.14.3-x86.dll: 由于应用程序配置不正确,应用程序未能启动。
重新安装应用程序可能会纠正”这个问题,可以通过重新下载Jacob的jar及dll文件(最好版本比现在的低,如1.11)解决实例制作(主要功能:标题制作,表格制作,合并表格,替换文本,页眉页脚,书签处理):import com.jacob.activeX.ActiveXComponent;import com.jacob.com.Dispatch;import com.jacob.com.Variant;public class WordOperate { public static void main(String args[]) { ActiveXComponent wordApp = new ActiveXComponent("Word.Application"); // 启动word // Set the visible property as required. Dispatch.put(wordApp, "Visible", new Variant(true));// //设置word可见 Dispatch docs = wordApp.getProperty("Documents").toDispatch(); // String inFile = "d:\\test.doc"; // Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method, // new Object[] { inFile, new Variant(false), new Variant(false)},//参数3,false:可写,true:只读 // new int[1]).toDispatch();//打开文档 Dispatch document = Dispatch.call(docs, "Add").toDispatch();// create new document String userName = wordApp.getPropertyAsString("Username");// 显示用户信息 System.out.println("用户名:" + userName); // 文档对齐,字体设置//////////////////////// Dispatch selection = Dispatch.get(wordApp, "Selection").toDispatch(); Dispatch align = Dispatch.get(selection, "ParagraphFormat") .toDispatch(); // 行列格式化需要的对象 Dispatch font = Dispatch.get(selection, "Font").toDispatch(); // 字型格式化需要的对象 // 标题处理//////////////////////// Dispatch.put(align, "Alignment", "1"); // 1:置中 2:靠右 3:靠左 Dispatch.put(font, "Bold", "1"); // 字型租体 Dispatch.put(font, "Color", "1,0,0,0"); // 字型颜色红色 Dispatch.call(selection, "TypeText", "Word文档处理"); // 写入标题内容 Dispatch.call(selection, "TypeParagraph"); // 空一行段落 Dispatch.put(align, "Alignment", "3"); // 1:置中 2:靠右 3:靠左 Dispatch.put(selection, "Text", " "); Dispatch.call(selection, "MoveDown"); // 光标标往下一行 //表格处理//////////////////////// Dispatch tables = Dispatch.get(document, "Tables").toDispatch(); Dispatch range = Dispatch.get(selection, "Range").toDispatch(); Dispatch table1 = Dispatch.call(tables, "Add", range, new Variant(3), new Variant(2), new Variant(1)).toDispatch(); // 设置行数,列数,表格外框宽度 // 所有表格 Variant tableAmount = Dispatch.get(tables, "count"); System.out.println(tableAmount); // 要填充的表格 Dispatch t1 = Dispatch.call(tables, "Item", new Variant(1)) .toDispatch(); Dispatch t1_row = Dispatch.get(t1, "rows").toDispatch();// 所有行 int t1_rowNum = Dispatch.get(t1_row, "count").getInt(); Dispatch.call(Dispatch.get(t1, "columns").toDispatch(), "AutoFit");// 自动调整 int t1_colNum = Dispatch.get(Dispatch.get(t1, "columns").toDispatch(), "count").getInt(); System.out.println(t1_rowNum + " " + t1_colNum); for (int i = 1; i <= t1_rowNum; i++) { for (int j = 1; j <= t1_colNum; j++) { Dispatch cell = Dispatch.call(t1, "Cell", new Variant(i), new Variant(j)).toDispatch();// 行,列 Dispatch.call(cell, "Select"); Dispatch.put(selection, "Text", "cell" + i + j); // 写入word的内容 Dispatch.put(font, "Bold", "0"); // 字型租体(1:租体 0:取消租体) Dispatch.put(font, "Color", "1,1,1,0"); // 字型颜色 Dispatch.put(font, "Italic", "1"); // 斜体 1:斜体 0:取消斜体 Dispatch.put(font, "Underline", "1"); // 下划线 Dispatch Range = Dispatch.get(cell, "Range").toDispatch(); String cellContent = Dispatch.get(Range, "Text").toString(); System.out.println((cellContent.substring(0, cellContent .length() - 1)).trim()); } Dispatch.call(selection, "MoveDown"); // 光标往下一行(才不会输入盖过上一输入位置) } //合并单元格//////////////////////// Dispatch.put(selection, "Text", " "); Dispatch.call(selection, "MoveDown"); // 光标标往下一行 Dispatch range2 = Dispatch.get(selection, "Range").toDispatch(); Dispatch table2 = Dispatch.call(tables, "Add", range2, new Variant(8), new Variant(4), new Variant(1))....
文件后缀是 action的是什么格式的啊 我该用什么软件打开?
QTP全称Mercury QuickTest Professional,是一款自动化测试工具,用于软件的功能测试和回归测试。
它能够录制用户行为,并自动进行重放、捕获及验证,可以代替测试人员去完成那些重复性高并且枯燥的工作。
录制用户行为,也就是录制测试脚本,所有录制的用户行为都能够追踪到脚本代码。
脚本的重用作为测试自动化的一个方面,是指将一些通用的、固定的用户行为从测试脚本中提取出来,作为独立部分,在其它脚本中加以引用。
这样,就避免了一些通用行为的重复录制,有利于测试框架的搭建。
本文将简单介绍Mercury QuickTest Professional 8.2中脚本的重用方法。
QTP中的Action QTP中脚本可重用的最小单元是Action,录制的用户行为集合将以脚本代码的形式存放在Action中。
当你录制脚本的时候,只有一个Action,录制的脚本也全部在这个Action中,可以将这个Action进行切割,提取通用脚本并模块化。
QTP提供四种操作Action的方式:1、New Action:新建一个Action,可以在其中录制、编辑脚本;2、 Split Action:将一个Aciton分割成两个Action;3、 Copy of Action:复制一个Action,即创建一个副本。
两个Action相互独立,修改其中任何一个,不会影响另一个;4、 Call to Action:如同编程语言中的函数调用,测试脚本中也可以引用或调用一个可重用的Aciton,这个Action可以是任一测试脚本文件中声明为Reusable(可重用)的Action。
注意:不允许在引用端修改被调用的Action,只能在原脚本文件中修改。
脚本重用示例 Call to Action是QTP重用脚本的核心,下面简单介绍一个使用这种方式来重用脚本的例子。
测试一个简单的B/S结构的办公自动化系统的常用功能。
大体流程为:登录系统―业务处理―退出系统。
其中登录系统和退出系统属于可重用性比较强的功能模块,如果系统允许同一用户同时在多台计算机上登录的话,可以单独建立一个脚本文件,将登录和退出录制成两个可重用的Action,以便重用。
业务处理流程就比较多样了,它包括文稿审批、个人日志管理、请假申请等功能模块。
测试一个功能模块的完整用户行为包括登录系统,执行特定的业务流程,执行完毕后退出系统。
可使用一个测试脚本文件测试一个特定的功能模块,系统登录和退出模块可以使用Call to Action方式进行重用,不需要在每个模块的测试中都进行录制。
具体步骤如下:步骤1:录制系统登录和退出脚本。
新建login_out脚本文件,在Record and Run Setting选项卡中,选择IE方式并输入办公自动化系统的网址,点击OK进行录制。
QTP将自动打开办公自动化系统的网页,输入用户名和密码登录系统,再退出系统。
然后结束录制,QTP将自动生成脚本。
步骤2:使用Split Action方式将login_out脚本中的Action分割成login和logout两个Action。
login是系统登录部分的脚本,logout是退出部分的脚本。
具体的分割步骤本文不作说明,读者可参阅QTP的使用手册。
步骤3:将login和logout设定为可重用。
打开两个Action的Action Properties对话框,点选Reusable action选项,点击OK后,两个Action便可以被其它脚本文件引用了。
步骤4:录制业务处理脚本。
按照步骤1新建process脚本文件进行任一功能模块的测试脚本录制。
在登录系统进入主界面后,按下工具列中的Record按钮,开始录制相关的业务操作,完成后再按下Stop按钮结束录制,并将Action命名为processing。
这样,process文件包含一个Action名为processing,其中录制了一段系统业务处理流程的测试脚本,但并未包含用户的登录和退出行为,不能直接自动执行,需要手工登录系统进入主界面后,才能执行。
步骤5:调用login和logout,完善process脚本。
打开process脚本,在菜单中选择Insert―Call to Existing Action选项,打开Select Action对话框,选择login_out脚本,选择login,点击OK进行Action的引用。
用同样的方法应用logout。
注意,调整三个Action的顺序为login―processing―logout。
完成以上五个步骤后,可以执行process脚本进行调试。
小结 脚本重用作为测试自动化的一个方面,缩短了脚本的编制时间、利于脚本的架构与维护。
在脚本文件中直接调用可重用的脚本,避免了重复录制,节省时间。
自动化测试人员可以把一个Action中的用户行为分割成很多Action,从中提取出重用性高的设置为Reusable action保存在单独的文件中,并利用这些Reusable action来灵活地架构自己的测试脚本。
当一个可重用的脚本需要修改时,仅需在它的源文件中进行改动,调用它的脚本都会随之改动,方便了脚本的维护。
转载请注明出处51数据库 » action word自动化测试