自动化测试平台搭建,属鸡的和属羊的属相相配吗
自动化测试基本流程是什么?
自动化测试基本流程
1、制定测试计划
在展开自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。
2、分析测试需求
用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时能够覆盖所有的需求点。一般来讲,基于Web功能测试需要覆盖一下几个方面:
1)页面链接测试,确保各个链接正常;
2)页面控件测试,确保各个控件可靠;
3)页面功能测试,确保各项操作正常;
4)数据处理测试,确保数据显示准确、处理精确可靠;
5)模块业务逻辑测试,确保各个业务流程畅通。
3、设计测试用例
通过分析测试需求,设计出能够覆盖所有需求点的测试用例,形成专门的测试用例文档。由于不是所有的测试用例都能用自动化来执行,所以需要将能够执行自动化测试的用例汇总成自动化测试用例。必要时,要将登陆系统的用户、密码、产品、客户等参数信息独立出来形成测试数据,便于脚本开发。
4、搭建测试环境
自动化测试人员在用例设计工作开展的同时即可着手搭建测试环境。因为自动化测试的脚本编写需要录制页面控件,添加对象。测试环境的搭建,包括被测系统的部署、测试硬件的调用、测试工具的安装和设置、网络环境的布置等。
5、编写测试脚本
根据自动化测试用例和问题的难易程度,采取适当的脚本开发方法编写测试较薄。一般先通过录制的方式获取测试所需要的页面控件,然后再用结构化语句控制脚本的执行,插入检查点和异常判定反馈语句,将公共普遍的功能独立成共享脚本,必要时对数据惊醒参数化。当然还可以用其他高级功能编辑脚本。脚本编写好了之后,需要反复执行,不断调试,知道运行正常为止。脚本的编写和命名要符合管理规范,以便统一管理和维护。
6、分析测试结果、记录测试问题
应该及时分析自动化测试结果,建议测试人员每天抽出一定时间,对自动化测试结果进行分析,以便尽早地发现缺陷。如果采用开源自动化测试工具,建议对其进行二次开发,以便与测试部门选定的缺陷管理工具紧密结合。理想情况下,自动化测试案例运行失败后,自动化测试平台就会自动上报一个缺陷。测试人员只需每天抽出一地你该时间,确认这些自动上报的缺陷,是否是真实的系统缺陷。如果是系统缺陷就提交开发人员修复,如果不是系统缺陷,就检查自动化测试脚本或者测试环境。
7、跟踪测试BUG
测试记录的BUG要记录到缺陷管理工具中去,以便定期跟踪处理。开发人员修复后,需要对此问题执行回归测试,就是重复执行一次该问题对应的较薄,执行通过则关闭,否则继续修改。如果问题的修改方案与客户达成一致,但与原来的需求有所偏离,那么在回归测试前,还需要对脚本进行必要的修改和调试。
8、自动化脚本的维护
如果系统发生变更时,对自动化测试脚本和相关文档包括《自动化测试用例》、《自动化脚本设计说明书》进行维护,以适应变更后的系统。
如何搭建自己的自动化测试框架
这段时间一直在为公司内部开发
自动化测试框架
,简称GTF,因为这个框架现在还属于开发阶段,很多事都是言之过早。我会持续将我在架构过程中的想法写下来。供自己和大家一起分享。
这些想法,并不属于我一个人,我工作中的同事们给了我很大的帮助。
今天这一篇主要说明架构方面的考虑。
在现有的提供自动化测试解决方案的产品很多,包括:Robot,TestComplete,WinRunner等等。我只接触过这些,公司里也进行过很大的尝试,但是结果往往总是不竟如人意。
这中间,排除那些人员方面的原因,也总结这些自动化工具
,在使用过程中的不方便的地方:
1. 定位控件不方便。标准控件还好,非标准控件就只能靠很多非正常方法去获取。而且,控件的识别往往和界面布局相关。
3. 代码维护不方便。由于在编写过程中,大量的和界面相关的代码,导致最后在需求变更的时候,代码的维护,成为软件测试人员的负担。
针对这些情况,我们经过讨论,何不自己做一个软件测试框架。当然了,这是基于我们的丰富的知识积累的决策。大家不需要关心这个决策的情况。不过,可以多关注一些我们在做的过程中的分析结果。
通过分析流行的软件测试框架,有多种方式:
第一、最典型的就是消息驱动,自动化工具通过脚本录制和编写,保存为测试脚本。在回放的过程中,将这些脚本转换成为Windows消息,发送给我们应用程序的窗体和各种控件。
这种方式的好处在于,自动化工具和应用程序之间能够做到完全的隔离。但是,由于使用了Windows消息,它也拥有了一个非常致命的缺点。那就是消息队列的异步性与程序的顺序性之间的矛盾。很多消息发送给了应用程序,但是应用程序的处理可能已经和消息队列错位了。有一些关于代码的时间片等待,就是因为这个问题。
另外,就是由于完全的隔离,对于操纵控件数据的能力大大降低。毕竟,拥有大量数据的控件都不是标准控件。
第二、嵌入式
。TestComplete就是这类工具。它有支持不同语言的版本。大概思路,就是在程序编译的时候,注入自己的控件代理。脚本的回放,直接可以通过代理,操纵到应用程序。
可惜的是,这类软件开发的时候,更多的是考虑平台的兼容性。对于特有平台上的支持不是十分完美。特别是对自定义控件(比如Delphi中,除了VCL的标准控件)支持也没有做到最好。不过,我这里必须承认,TC的内部实现机制可能十分强大,我不能窥探所有。如果有人清晰,可以指点一二。
针对上面的两种,我们想到的第三种方式:一体式。这种方式中,通过给程序在打包的过程中,添加额外的框架代码,使得程序自动提供控件的访问方式。自动化的模块也会作为软件测试程序的一部分运行。
应用程序在执行脚本的时候,自动通过脚本
,控制各控件界面的显示和关闭。它应该是第二种方式的变种。但是由于是自己实现的,所以在对各类自定义控件支持的都非常好。
针对一开始提出的几个自动化测试的难题,我们提出了,自动封装窗体上所有控件的概念(这些概念后面会详细介绍),对于软件测试人员,只要关心真正的业务操作流程。而业务流程中涉及到的控件,已经为他们自动提供好。这样,脚本也自然只成了业务流程的脚本。其复杂度也就大大降下来了。
如果要推荐2个工具的话,我就推荐泽众软件公司的
自动化测试工具AutoRunner和测试管理工具Testcenter
,用这2个软件合作可以很好的进行自动化测试与对测试用例进行管理。
自动化测试框架如何搭建
- 测试结果的分析也是很重要的,一般也要求在自动化测试框架中得到解决。最重要的是易用,将各个工具集成起来,并能很好地使用这些工具。
例如,openqa.org社区提供了一个工具Bromine,它集成了Selenium Core/RC,非常容易跟踪和管理测试项目、需求、测试计划、测试用例和缺陷,可以监控缺陷的提交和将缺陷分派给相应的开发人员,浏览和分析测试结果。又如泽众软件(spasvo.com)自主研发的
测试管理工具TestCenter
,实现测试用例的过程管理,对测试需求过程、测试用例设计过程、业务组件设计实现过程等整个测试过程进行管理。实现测试用例的标准化即每个测试人员都能够理解并使用标准化后的测试用例,降低了测试用例对个人的依赖;提供测试用例复用,用例和脚本能够被复用,以保护测试人员的资产;提供可伸缩的测试执行框架,提供自动测试支持;提供测试数据管理,帮助用户同意管理测试数据,降低测试数据和测试脚本之间的耦合度。
一个理想的自动化测试框架能解决上述问题,提供一个分布式的通讯平台、友好的人机交互界面和开放式架构,将自动化测试中所需要的各个关键部分有机地集成起来,形成一个为自动化测试服务的、完整的、层次清楚的开发平台和运行环境,包括:
1)综合管理平台,可以将自动化测试中所有的工作内容管理起来,相当于一个统一的入口(Portal),可以浏览每部分的内容;
2)基于业务驱动的脚本集成开发环境,这样比较容易构造关键字驱动的脚本,为此要建立软件系统的对象库,并将这些对象映射为脚本中的逻辑对象,以减少软件需求变化对脚本的影响。这个集成开发环境还包括脚本录制、编辑等功能,并能和CVS、Ant等工具集成。其中库函数可以看作是关键字列表和关键字实现,而对象映射可以看作对象库和映射关系构成的。
3)安排(schedule)测试任务,使任务可以定时启动,自带执行测试任务;
4)在测试过程中,能够监控测试资源,并及时发现问题,发出警告,并保留(记录)相关数据;
5)控制中心(控制器),驱动测试工具
,可以调用测试任务,并能将测试任务、测试脚本等分发给远程机器;
6)远程机器执行测试任务,通过代理实现,而代理由控制中心来控制。
如何搭建python+selenium自动化测试框架
selenium 是一个web的自动化测试工具,不少学习功能自动化的同学开始首选selenium ,相因为它相比QTP有诸多有点:
* 免费,也不用再为破解QTP而大伤脑筋
* 小巧,对于不同的语言它只是一个包而已,而QTP需要下载安装1个多G 的程序。
* 这也是最重要的一点,不管你以前更熟悉C、 java、ruby、python、或都是C# ,你都可以通过selenium完成自动化测试,而QTP只支持VBS
* 支持多平台:windows、linux、MAC ,支持多浏览器:ie、ff、safari、opera、chrome
* 支持分布式测试用例的执行,可以把测试用例分布到不同的测试机器的执行,相当于分发机的功能。
关于selenium的基础知识与java平台的结合,我之前写过一个《菜鸟学习自动化测试》系列,最近学python,所以想尝试一下selenium的在python平台如何搭建;还好这方法的文章很容易,在此将搭建步骤整理分享。
搭建平台windows
准备工具如下:
-------------------------------------------------------------
下载python
-------------------------------------------------------------
如果你是新学python,哪果你没有要用的包是必须依赖于pyhton2.x 的,那么请毫不犹豫的选择python3.5吧!
window安装步骤:
1、下载python安装。
根据自己的操作系统32/64 位,选择相应的版本。
安装过程我就没必要描述,我的安装目录为:C:\Python35
2、进入cmd(windows命令提示符)下面输入"python"命令。
(如果提示python不是内部或外部命令!别急,去配置一下环境变量吧)
修改我的电脑->属性->高级->环境变量->系统变量中的PATH为:
变量名:PATH
变量值:;C:\Python35;C:\Python35\Scripts;
3、安装selenium
3.1、通过pip 安装
C:\Users\fnngj>python3 -m pip install selenium
3.2、通过下载包安装
或者直接下载selenium包:
解压,cmd进入目录:
C:\selenium\selenium2.53.5> python3 setup.py install
===============================================
ubuntu 下安装方式:
1、安装:setuptools
root@fnngj-H24X:~# apt-get install python-setuptools
2、安装pip
root@fnngj-H24X:/home/fnngj/python# tar -zxvf pip-1.4.1.tar.gz
root@fnngj-H24X:/home/fnngj/python# cd pip-1.4.1/
root@fnngj-H24X:/home/fnngj/python# python setup.py install
3、安装selenium
root@fnngj-H24X:/home/fnngj/python/pip-1.4.1# pip install -U selenium
恭喜~! 你前期工作已经做了,上面的步骤确实有些繁琐,但是并不难,不过我们已经完成成了,下面体验一下成果吧! 拿python网站上的例子:
from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.keys import Keysimport time
browser = webdriver.Firefox() # Get local session of firefoxbrowser.get("hto.com") # Load pageassert "Yahoo!" in browser.title
elem = browser.find_element_by_name("p") # Find the query boxelem.send_keys("seleniumhq" + Keys.RETURN)
time.sleep(0.2) # Let the page load, will be added to the APItry:
browser.find_element_by_xpath("//a[contains(@href,'httpmhq.org')]")except NoSuchElementException: assert 0, "can't find seleniumhq"browser.close()
(运行过程中如果出现错误:
WebDriverException: Message: u'Unexpected error launching Internet Explorer.
Protected Mode settings are not the same for all zones. Enable Protected Mo
de must be set to the same value (enabled or disabled) for all zones.'
更改IE的internet选项->安全,将Internet/本地Internet/受信任的站定/受限制的站点中的启用保护模式全部去 掉勾,或者全部勾上。)
-----------------------------------------
selenium + python的一份不错文档
===========================如果想通过其它浏览器(IE Chrome)运行脚本=================================
安装Chrome driver
chrome driver的下载地址在这里。
1. 下载解压,你会得到一个chromedriver.exe文件(我点开,运行提示started no prot 9515 ,这是干嘛的?端口9515被占了?中间折腾了半天),后来才知道需要把这家伙放到chrome的安装目录下...\Google\Chrome\Application\ ,然后设置path环境变量,把chrome的安装目录(我的:C:\Program Files\Google\Chrome\Application),然后再调用运行:
# coding = utf-8from selenium import webdriverdriver = webdriver.Chrome()driver.get('http:om')print driver.title
driver.quit()
又报了个错:
Chrome version must be >= 27.0.1453.0\n (Driver info: chromedriver=2.0,platform=Windows NT 5.1 SP3 x86)
说我chrome的版本没有大于27.0.1453.0 ,这个好办,更新到最新版本即可。
安装IE driver
在新版本的webdriver中,只有安装了ie driver使用ie进行测试工作。
ie driver的下载地址在这里,记得根据自己机器的操作系统版本来下载相应的driver。
暂时还没尝试,应该和chrome的安装方式类似。
记得配置IE的保护模式
如果要使用webdriver启动IE的话,那么就需要配置IE的保护模式了。
把IE里的保护模式都选上或都勾掉就可以了。
有哪些星座是因为追不到你,得不到你,就会更爱你?
我觉得符合这种性格的星座是金牛座,射手座和天秤座。每个人在生活中都会有自己认为需要坚持的事情,每个星座的人都是不一样的。
有的人会很害怕面对挑战,有的人会很喜欢面对挑战,喜欢去征服一些不可能,喜欢去征服一些得不到的东西,面对这些的时候,我们的星座特性会显示出来。
首先就是金牛座,金牛座是一个做事很规矩的人,面对很多事情,他都会按照规矩的去做。但是金牛座有很强的征服欲,往往越是得不到的东西,他就会越发的想要得到。通过得到来证明自己。金牛座在面对爱情的时候,会有很多自己的小想法。
其次就是射手座,射手座是一个善于挑战的星座,面对很多问题,他都会很具有挑战性。他会通过挑战成功来证明自己。越是容易得到的东西,对射手座来说,会更加不容易珍惜。越是得不到的你,他反而会越在意,也会更加爱你。
最后就是天秤座。天秤座是一个星运很旺的星座。天秤座的桃花运很旺,面对追求的人,他有很多的选择。他们会和金牛座一样,都有很强的征服欲,面对很多复杂事情。
就像陈奕迅红玫瑰里的歌词一样“得不到的永远在骚动,被偏爱的有恃无恐”,就是对这三个星座最精准的描述。得不到某些东西的时候,会使每个人内心很不满足。得不到的东西才是最好的。所以这三个星座,是三个得不到你,反而越爱你的星座。
不甘心将就,做事挑剔的星座,说的是哪些星座?
当你想解决问题时,你需要真诚。挑剔对你的事情有好处。不要为生活中的小事难过。最重要的是依靠你自己的奋斗。当你有了依赖感,你很容易互相关心。感情也是如此。即使你不说话,生活也需要行动。一切都要认真对待,只有稳重踏实,才能获得自己的幸福。每一个追求都有不同的向往。最重要的是给人一种安心的感觉。
处女座
喜欢生活的细节,处女座也关心完美的生活,按照自己的方式完成,只有这样才能满足自己的生活,处女座不会太针对别人,风格,处女座可以容忍感情,给自己带来幸福,处女座生活一切都很可靠,不愿意让自己选择,宁愿更难不屈服,处女座不会给人太不安的感觉,安全的生活会更快乐,处女座承诺彼此会做。
天秤座
愿意给别人留下好印象,天秤座不会太冤枉自己的生活,生活按照自己的步伐,天秤座很挑剔,不是他们喜欢的东西往往不太关心,如果心想要宽容,天秤座说话可靠,不容易冒犯别人,给自己更好的决定性,天秤座会考虑彼此,不能无缘无故地伤害别人,任何事情都不能太多,天秤座脚踏实地地完成自己的事情,珍惜感情。
狮子座
会掌握自己的事情,狮子座也容易变得更可靠,追求生活不那么脆弱,变得更珍惜,狮子座愿意认真对待一切,不太担心,狮子座不愿意承认失败,给自己更好的信心,狮子座喜欢爱的方向,狮子座喜欢完美的爱,非常挑剔,也喜欢自己的方式,狮子座遇到机会更好地掌握,狮子座可以让彼此放心,爱的态度往往很好。
金牛座
喜欢一步一步,金牛座喜欢稳定,不要变得太冲动,珍惜机会,知道如何小心面对事情,金牛座不想机会主义,不愿意在别人面前承认失败,这是他们追求的态度,金牛座喜欢高效的事情,不依赖别人,金牛座关心工作质量,不承认失败,坚持做自己的事情,只有通过自己的努力才会更快乐,金牛座也喜欢挑剔,完美的生活会更可靠。
射手座
调整心态做事,射手座不会太依赖别人,生活,生活知道如何维护,面对各种挫折不会抱怨,射手座挑剔,不想变得太分心,射手座不会给人们带来麻烦,一切己的立场非常坚定,射手座不会每天做,像完美的生活,射手座对感情也很挑剔,坚持自己的风格,射手座对爱和工作负责,用心处理事情可以更快乐。