转载1:
不知不觉,已经分享了好几个自动化框架:
不需要写代码的自动化框架
JMeter + Ant+ Jenkins:
windows版本:https://www.cnblogs.com/uncleyong/p/10739519.html
linux版本:https://www.cnblogs.com/uncleyong/p/10766480.html
JMeter + Maven+ Jenkins:https://www.cnblogs.com/uncleyong/p/10843097.html
需要写代码的自动化框架
python版接口自动化测试框架源码完整版,https://www.cnblogs.com/uncleyong/p/10650552.html
unittest + requests + excle + ddt:仅提升圈可见
自己造轮子(非unittest、非pytest):仅提升圈可见
java版接口自动化测试框架源码完整版(httpclient + testng):https://www.cnblogs.com/uncleyong/p/10659840.html
后续继续分享:
1.web端ui自动化测试框架
2.app端ui自动化测试框架(airtest)
3.性能自动化测试框架
4.pytest
转载2:
1、selenium:
selenium是一个用于Web应用程序测试的工具。这个工具的主要功能包括:测试与浏览器的兼容性,测试你的应用程序,看是否能够很好得工作,在不同浏览器和操作系统之上。测试系统功能,创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium不是市场上唯一的自动化测试工具,但它是唯一可以与付费产品竞争的免费测试工具。而且Selenium可以提供无与伦比的灵活性,它可以轻松集成各种开发平台,如Jenkins,Maven,TestNG,QMetry,SauceLabs等。同时它支持移动测试,和各种语言,平台和浏览器,庞大的社区,大型插件库。selenium缺点也存在,没有内置的图像比较、技术支持和报告功能。
2、AutoRunner:
AutoRunner是自动化的功能测试工具。功能测试的目标是根据GUI的界面或者报表来检查软件的实际功能是否和需求定义的功能相一致。AutoRunner自动测试工具适用于功能测试、回归测试、系统测试、疲劳测试、组合测试、每日构建测试等,可以提高测试效率,降低测试人工成本,帮助用户找被测对象的缺陷,特别是对于一些通过手工测试很难发现的缺陷。
3、watir:
Watir是用来定位web元素,它是一种基于网页模式的自动化功能测试工具。它能够使用chrome、firefox、IE浏览器进行web测试,它可以模拟用户点击链接,填写表单,点击按钮等。相对于其他商业工具来说,小巧、灵活的watir-webdriver所提供的功能已经足够。不过,watir的缺点也很明显,只支持ie。
4、Robot Framework:
Robot Framework是一个跨平台的通用的,与应用程序和技术无关的测试框架。它的优点是:易于扩展,提供了简单的API,用户可以自定义基于Python和Java的测试库。它还提供强大的标签功能,来归类测试运行,在测试运行时可以选择不同的Tag或tag组合进行测试运行。支持报告合并,以便让你可以多机执行,然后合并报告,全局测试超时时间设置,局部可以覆盖全局的设置非常方便,不会测试卡壳的等等。
5、QTP:
QTP是大家最常用的测试工具。而现在很多公司用的自动化测试框架都是以此为核心的。以QTP为核心的自动化测试框架优点在于:适用性好,很多人都已经会用或者至少说可以简单应用,脚本也简单易懂,大多数无任何代码基础的测试人员都可以加入脚本录制和调试。然而它最大的缺点就是对象库,关键字的框架,灵活度也不高,且加上QTP在对flex等的支持上,也是让许多人头疼的问题。
转载3:
1.python自动化的一些测试框架
1).unitest(也称为PyUnit) 地址:https://docs.python.org/2/library/unittest.html
2).Nose 地址:http://nose.readthedocs.io/en/latest/
3).Pytest https://docs.pytest.org/en/latest/
2.介绍一下这几个框架的内容:
1).Pyunit:使我们具备创建测试用例,测试套件,测试夹具的能力.
2).Nose:此框架拓展了unnittest并且提供自动搜索和运行测试的功能,也提供了一些插件来创建高级的测试
3).Pytest:提供了一些基于Python来编写和运行单元测试的高级特性
转载4:
聊聊自动化测试框架
无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。之前学习自动化测试的过程中,一直对“框架”这个词知其然不知其所以然。
最近看了很多自动化相关的资料,加上自己的一些实践,算是对“框架”有了一些理解,这篇博客,就聊聊自动化框架的一些事吧。
一、什么是框架
框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。
在软件工程中,框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;
另一种定义认为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从目的方面给出的定义。
—— 百度百科
上面的概念比较抽象,换另一个角度解释:
1. 框架本身一般不完整到可以解决特定问题;
2. 框架天生就是为扩展而设计的;
3. 框架里面可以为后续扩展的组件提供很多辅助性、支撑性的方便易用的工具,也就是说框架是配套了一些帮助解决某类问题的库(libraries)或工具(tools)。
约束性:针对解决特定问题的软件框架会首先定义问题的边界,进而将相关的软件组件约束在这个边界内,保持框架在解决问题方面上的内聚性。
支撑性:框架本身不解决什么问题,但给了解决问题的相关组件一个组合底子,这个底子的科学性和易用性直接影响在此之上进一步开发的科学性和方便性。
—— 知乎
上面的2个对框架的解释和定义,看起来也并没有很简单直白的说清楚什么是框架,下面是我的一些理解:
定义:为解决某些特定问题而约束边界,支撑整个问题解决方案,配套了一些解决问题的组件而构成的工具。
特定问题:什么问题?——自动化测试
约束边界:为什么约束?——明确测试范围和目的
解决方案:用什么方案解决问题?——编程语言+工具+其他
构成工具的组件:哪些组件?—— 用例、脚本、数据、日志、报告、通知
工具:特点是什么?—— 灵活性、可扩展性、高内聚低耦合
二、自动化测试
1、为什么要进行自动化测试?
① 黑盒测试回归效率低
② 手动测试的偶然性和不确定性
③ 回归的覆盖率不足
④ 交付的产品质量无法保证,全靠评估
⑤ 系统越复杂,问题越多
⑥ 上线时间长、构件失败率高导致的蝴蝶效应(迭代快,加班多)
2、自动化测试能解决什么问题?
① 提高出现问题后的响应速率
② 降低回归成本
③ 提高回归覆盖率
④ 提高回归效率
⑤ 提高回归的稳定性
3、自动化测试的不足有哪些?
① 无法减少成本投入,而是为了加快测试结果反馈,提升测试质量
② 自动化适用于回归和冒烟,而不是发现BUG
③ 录制回放功能是鸡肋,可视化并不是一个很好的做法
④ 不是所有所有系统所有功能都适合做自动化测试
三、自动化测试框架
构成框架的组件,最起码应该具备以下的功能:
Log:日志记录和管理功能,针对不同的情况,设置不同的日志级别,方便定位问题;
Report:测试报告生成和管理以及即时通知,测试结果快速响应;
Source:配置文件、静态资源的管理,遵循高内聚低耦合原则;
Common:公共函数、方法以及通用操作的管理,遵循高内聚低耦合原则;
TestCase:测试用例管理功能,一个功能点对应一个或者多个case,尽可能的提高覆盖率;
TestData:测试数据管理功能,数据与脚本分离,降低维护成本,提高可移植性;
TestSuite:测试组件管理功能,针对不同场景不同需求,组装构建不同的测试框架,遵循框架的灵活性和扩展性;
Statistics:测试结果统计管理功能,每次执行测试的结果统计、分析、对比以及反馈,数据驱动,为软件优化和流程改进,提供参考;
Continuous:持续集成环境,即CI环境,包括测试文件提交、扫描编译、执行测试、生成报告及时通知等功能,持续集成是自动化测试的核心!
四、常见的自动化测试框架
1、接口自动化框架:
① java+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
② python+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
③ python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
④ jmeter+Maven/Ant+Jenkins+MySQL+testlink/redmine
2、UI自动化测试框架
① java+selenium/appium+testNG/Junit+Maven/Ant/Gradle+Jenkins+MySQL+testlink/redmine
② python+selenium/appium+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
③ python+rebot framework+unittest/pytest+Git+Jenkins+MySQL+testlink/redmine
通过上面的一些常见框架,你发现了什么?
它们都拥有共同特性:编程语言+单元测试框架+扫描编译工具+持续集成工具+数据库+项目管理工具。
编程语言:编写测试脚本、日志记录和输出;
单元测试框架:提供测试脚本运行、异常校验等一些列的配置;
扫描编译工具:测试文件扫描编译,一般配合持续集成工具使用效果更佳;
持续集成工具:Jenkins,经典的持续集成工具;
数据库:测试数据管理;
项目管理工具:测试结果统计管理;
PS:自动化测试工具太多,上面只是列举了使用率较高以及我个人还算了解的一些开源工具,具体的框架选型,需要根据具体项目特点和团队、个人技术特点来决定!
出处:
http://www.cnblogs.com/imyalost/p/9034194.html