1. 如何写一个java自动化测试框架
自动化测试框架 ,即是应用于自动化测试所用的框架。
按照框架的定义,自动化测试框架要么是提供可重用的基础自动化测试模块,如:selenium 、watir等,它们主要提供最基础的自动化测试功能,比如打开一个程序,模拟鼠标和键盘来点击或操作被测试对象,最后验证被测对象的属性以判断程序的正确性;要么是可以提供自动化测试执行和管理功能的架构模块,如:Phoenix Framework,robot ,STAF 等,它们本身不提供基础的自动化测试支持,只是用于组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,通常这类框架一般都会集成一个基础自动化测试模块,如:robot框架就可以集成selenium 框架,Phoenix Framework集成的也是selenium框架。
2. 如何来评价一个测试框架的好坏
不同的测试有不同的任务与目标,例如单元测试和系统测试的任务往往有很大的不同。
不同的框架支持不同的测试活动,因此没有最好,只有合适。一般而言,一个好的框架应该具备以下特征。
1. 能提供充分的日志(log)以便调试。一些UI测试框架,具备屏幕截图的功能,可以捕获测试运行时UI的外观。
2. 能组织测试用例,以不同的粒度、标准允许测试用例。例如,允许测试者将测试用例分组,以测试用例集为单位允许测试。
那么测试者就可以将测试用例划分为BVT用例集、功能用例集,以用于不同的场合。3. 允许测试者将精力集中在测试用例编写上,而不是与框架集成。
例如CppUnitLite就胜过CppUnit(这两个框架的作者是同一个人,他开发CppUnitLite就是为了克服CppUnit的一些不足),因为利用CppUnitLite写测试用例很简单,用CppUnit就要写更多的代码。4. 提供充分的调试支持。
例如,设置断点或暂停,允许测试者观察测试运行中的状态。
3. 对于移动app测试的自动化测试框架要怎么做
在开始设计自动化测试框架之前,需要考虑下:
使用该框架写出来的自动化测试案例,需要给开发,手动测试,可能还有客户查看,所以写的测试案例需要尽量的清晰明了,不要有太多复杂逻辑,及比较好的可读性。
使用这个框架做自动化的人,不会有太深的编程能力,所以要提供足够好的,最好是傻瓜化的测试点验证方法,及很好的异常容错处理能力。
测试框架最好是app测试,网页测试,接口测试,统统都能支持。
TestBird - 手游和App自动化测试平台
4. 如何构建结构良好的测试框架
这段时间一直在为公司内部开发自动化测试框架,简称GTF,因为这个框架现在还属于开发阶段,很多事都是言之过早。
我会持续将我在架构过程中的想法写下来。供自己和大家一起分享。
这些想法,并不属于我一个人,我工作中的同事们给了我很大的帮助。今天这一篇主要说明架构方面的考虑。
在现有的提供自动化测试解决方案的产品很多,包括:Robot,TestComplete,WinRunner等等。我只接触过这些,公司里也进行过很大的尝试,但是结果往往总是不竟如人意。
这中间,排除那些人员方面的原因,也总结这些自动化工具,在使用过程中的不方便的地方:1. 定位控件不方便。标准控件还好,非标准控件就只能靠很多非正常方法去获取。
而且,控件的识别往往和界面布局相关。3. 代码维护不方便。
由于在编写过程中,大量的和界面相关的代码,导致最后在需求变更的时候,代码的维护,成为软件测试人员的负担。针对这些情况,我们经过讨论,何不自己做一个软件测试框架。
当然了,这是基于我们的丰富的知识积累的决策。大家不需要关心这个决策的情况。
不过,可以多关注一些我们在做的过程中的分析结果。通过分析流行的软件测试框架,有多种方式:第一、最典型的就是消息驱动,自动化工具通过脚本录制和编写,保存为测试脚本。
在回放的过程中,将这些脚本转换成为Windows消息,发送给我们应用程序的窗体和各种控件。这种方式的好处在于,自动化工具和应用程序之间能够做到完全的隔离。
但是,由于使用了Windows消息,它也拥有了一个非常致命的缺点。那就是消息队列的异步性与程序的顺序性之间的矛盾。
很多消息发送给了应用程序,但是应用程序的处理可能已经和消息队列错位了。有一些关于代码的时间片等待,就是因为这个问题。
另外,就是由于完全的隔离,对于操纵控件数据的能力大大降低。毕竟,拥有大量数据的控件都不是标准控件。
5. 怎样从0开始搭建一个测试框架
自动化测试框架,简称GTF,因为这个框架现在还属于开发阶段,很多事都是言之过早。
我会持续将我在架构过程中的想法写下来。供自己和大家一起分享。
这些想法,并不属于我一个人,我工作中的同事们给了我很大的帮助。今天这一篇主要说明架构方面的考虑。
在现有的提供自动化测试解决方案的产品很多,包括:Robot,TestComplete,WinRunner等等。我只接触过这些,公司里也进行过很大的尝试,但是结果往往总是不竟如人意。
这中间,排除那些人员方面的原因,也总结这些自动化工具,在使用过程中的不方便的地方:1. 定位控件不方便。标准控件还好,非标准控件就只能靠很多非正常方法去获取。
而且,控件的识别往往和界面布局相关。3. 代码维护不方便。
由于在编写过程中,大量的和界面相关的代码,导致最后在需求变更的时候,代码的维护,成为软件测试人员的负担。针对这些情况,我们经过讨论,何不自己做一个软件测试框架。
当然了,这是基于我们的丰富的知识积累的决策。大家不需要关心这个决策的情况。
不过,可以多关注一些我们在做的过程中的分析结果。通过分析流行的软件测试框架,有多种方式:第一、最典型的就是消息驱动,自动化工具通过脚本录制和编写,保存为测试脚本。
在回放的过程中,将这些脚本转换成为Windows消息,发送给我们应用程序的窗体和各种控件。这种方式的好处在于,自动化工具和应用程序之间能够做到完全的隔离。
但是,由于使用了Windows消息,它也拥有了一个非常致命的缺点。那就是消息队列的异步性与程序的顺序性之间的矛盾。
很多消息发送给了应用程序,但是应用程序的处理可能已经和消息队列错位了。有一些关于代码的时间片等待,就是因为这个问题。
另外,就是由于完全的隔离,对于操纵控件数据的能力大大降低。毕竟,拥有大量数据的控件都不是标准控件。
第二、嵌入式。TestComplete就是这类工具。
它有支持不同语言的版本。大概思路,就是在程序编译的时候,注入自己的控件代理。
脚本的回放,直接可以通过代理,操纵到应用程序。可惜的是,这类软件开发的时候,更多的是考虑平台的兼容性。
对于特有平台上的支持不是十分完美。特别是对自定义控件(比如Delphi中,除了VCL的标准控件)支持也没有做到最好。
不过,我这里必须承认,TC的内部实现机制可能十分强大,我不能窥探所有。如果有人清晰,可以指点一二。
针对上面的两种,我们想到的第三种方式:一体式。这种方式中,通过给程序在打包的过程中,添加额外的框架代码,使得程序自动提供控件的访问方式。
自动化的模块也会作为软件测试程序的一部分运行。应用程序在执行脚本的时候,自动通过脚本,控制各控件界面的显示和关闭。
它应该是第二种方式的变种。但是由于是自己实现的,所以在对各类自定义控件支持的都非常好。
针对一开始提出的几个自动化测试的难题,我们提出了,自动封装窗体上所有控件的概念(这些概念后面会详细介绍),对于软件测试人员,只要关心真正的业务操作流程。而业务流程中涉及到的控件,已经为他们自动提供好。
这样,脚本也自然只成了业务流程的脚本。其复杂度也就大大降下来了。
如果要推荐2个工具的话,我就推荐泽众软件公司的自动化测试工具AutoRunner和测试管理工具Testcenter,用这2个软件合作可以很好的进行自动化测试与对测试用例进行管理。
6. 请教功能测试用例怎么写
【不在于测试用例该怎么写,而在于想怎么测。】
【对用例的理解表达出来,格式自然出来了】呵呵,偶要顶一下,偶不是完全赞同这两句话。用例的理解跟格式没有必然的联系。
也没有主次轻重之分。【先保证自己对业务流程和业务规则的理解和熟悉,然后可以对这部分先思考一下,哪些地方需要测试,需要怎样的测试?如何来施行这些测试?之后再增加对系统中其他规则、特性和算法的熟悉,继续增加测试的深度和广度。】
——这句说的很对。有这么一个公式, 数据结构+算法=程序。
这里类比一下用例设计,jackei和skinapi版主强调的是用例的“算法”,而文档格式是用例的“结构”。两者的关系是相辅相成,而不是矛盾的(好像在上政治课哈)。
至于说“对用例的理解表达出来,格式自然出来了”,这个境界太高了,不是一般人可以做到的。面对现实的企业应用,做项目的话你会遇到各种各样的情况,要做到“格式自然出来”实在是太……厉害了呵呵。
是这样的:用例格式相当于一个规范,给你一个结构,一个框架(framework),仅此而已,并不因为你的用例模板而能体现用例的好坏。所以, “用例怎么写”其实分两个:用例的“算法”+用例的“结构” (也就是模板)了。
查看原帖>>。
7. HTML基本框架怎么写
框架可以生成独立变化和滚动的窗口,从而能将一个窗口分割为若干个字窗口。
在每一个字窗口中显示一个HTML文档。我们这回就来看看多文档的基本结构和子窗口之间的交叉链接。
一,基本结构HTML使用<frameset>,<frame>和
(一),<frameset>标签。 该标签是框架设计标签,成对使用。
首尾标签之间的内容就是使用到框架的HTML主体部分。在使用框架的HTML文档中不能出现<body>标签,否则会导致浏览器忽略所有的框定义而只显示<body>和