
测试开发大神倾情打造,一站式自动化集成平台及解决方案!http://www.autotestplat.com
给大家推荐一本普适搬砖秘籍 《自动化平台测试开发》 男女老少咸宜 第一本书,当初在百度阅读初步写了个电子版,刚一上线不久即收到了数百位读者朋友阅读收藏购买,于是顺利成章就出版了纸质书。 《软件自动化测试开发》认真看过的读者应该都知道,介绍的主要是自动化测试基础以自动化测试框架为主线,同时附带提到了自动化平台的功能。 第一本书是偏向于Java语言开发。 然后 第二本书,第一本2017年内连续印刷4次多,符合广大同行的技能提升诉求,而第二本延续第一本的知识体系,做成自主研发所谓高大上的自动化测试平台。 《自动化平台测试开发》可以说是测试开发的第二集,或称测试开发进阶版,全书以自动化测试平台为核心,自动化测试为辅线进行全面深入的实战。 第二本全书使用Python语言开发。 附上全书目录如下: 第1章 Python零基础入门 1.1 Python介绍 1.2 环境搭建 1.2.1 安装JDK 1.7 1.2.2 安装Elcipse 1.2.3 安装配置Python3 1.2.4 安装PyDev 1.2.5 配置PyDev 1.2.6 新建一个项目工程 1.3 基础知识 1.3.1 语句与语法 1.3.2 数据类型 1.3.3 运算符和表达式 1.3.4 变量和赋值 1.3.5 基本控制流程 1.3.6 类和对象 1.3.7 函数 1.3.8 模块导入和包导入 1.3.9 异常处理 1.4 实例讲解 1.4.1 文件操作实例 1.4.2 数据库操作实例 第2章 Web应用框架 2.1 介绍 2.2 环境搭建 2.3 Django开发入门 2.3.1 创建项目 2.3.2 启动服务 2.3.3 创建应用 2.3.4 创建视图 2.3.5 创建映射 2.3.6 创建模板 2.4 MySQL数据库使用 第3章 自动化平台开发 3.1 自动化平台开发方案 3.1.1 功能需求 3.1.2 技术知识点 3.1.3 开发时间计划 3.1.4 投资回报率可视化 3.1.5 后期优化计划 3.2 登录功能实现 3.3 退出功能实现 3.4 权限功能操作 3.5 产品管理模块开发 3.5.1 产品管理数据库设计 3.5.2 产品管理功能后台开发 3.5.3 产品管理功能前端开发 3.6 接口自动化模块开发 3.6.1 接口管理数据库设计 3.6.2 流程接口管理功能后台开发 3.6.3 流程接口展示功能前端开发 3.6.4 单一接口管理功能后台开发 3.6.5 单一接口展示功能前端开发 3.7 Bug管理模块开发 3.7.1 Bug管理数据库设计 3.7.2 Bug管理后端开发 3.7.3 Bug管理前端开发 3.8 系统设置模块开发 3.8.1 系统设置数据库设计 3.8.2 系统设置后台开发 3.8.3 系统设置前端开发 3.9 App自动化模块开发 3.9.1 App用例管理数据库设计 3.9.2 App用例管理功能后台开发 3.9.3 App用例管理功能前端开发 3.10 Web自动化模块开发 3.10.1 Web用例管理数据库设计 3.10.2 Web用例管理功能后台开发 3.10.3 Web用例管理功能前端开发 3.11 测试报告模块前端开发 3.11.1 单一接口测试报告 3.11.2 流程接口测试报告 3.11.3 AppUI测试报告 3.11.4 WebUI测试报告 3.12 自动化平台前端优化 3.12.1 HTML简要知识 3.12.2 主页面优化1 3.12.3 前端搜索功能实现 3.12.4 前端翻页功能实现 3.12.5 数据统计功能实现 3.12.6 添加数据功能实现 3.12.7 编辑数据功能实现 3.12.8 删除数据功能实现 3.12.9 主页面优化2 3.12.10 主页面优化3 3.12.11 主页面优化4 第4章 正则表达式 4.1 为什么要用正则表达式 4.2 正则表达式元字符及其作用 4.3 正则表达式字符串匹配示例 4.4 Python正则表达式使用介绍 4.5 正则表达式源码详解 4.5.1 正则表达式实例1 4.5.2 正则表达式实例2 4.5.3 正则表达式实例3 第5章 单元测试 5.1 Unittest单元测试 5.2 Django单元测试 第6章 接口自动化测试 6.1 接口概述 6.1.1 接口示例 6.1.2 接口工具 6.1.3 JSON数据 6.1.4 接口文档 6.2 接口测试用例设计 6.3 环境准备 6.4 接口自动化测试源码详解 6.4.1 接口自动化测试实例1 6.4.2 接口自动化测试实例2 6.4.3 接口自动化测试实例3 6.5 接口自动化测试汇总报告 第7章 App自动化测试 7.1 概述 7.2 风险分析 7.3 软硬件需求 7.4 测试计划 7.5 Appium移动自动化框架 7.6 环境搭建 7.7 App自动化测试源码详解 7.7.1 App自动化测试实例1 7.7.2 App自动化测试实例2 7.7.3 App自动化测试实例3 7.8 App自动化测试汇总报告 第8章 Web自动化测试 8.1 Selenium介绍 8.2 环境搭建 8.3 Web自动化测试源码详解 8.3.1 Web自动化测试实例1 8.3.2 Web自动化测试实例2 8.3.3 Web自动化测试实例3 8.4 Web自动化测试报告 第9章 性能测试 9.1 环境搭建 9.2 使用入门 第10章 持续集成 10.1 介绍 10.2 系统配置 10.3 项目配置 10.4 多机器节点配置 10.5 结果展示视图 第11章 定时任务开发 11.1 环境搭建 11.2 前端功能实现 11.3 定时任务测试源码 11.3.1 接口扫描自动化测试源码 11.3.2 流程接口自动化测试源码 11.3.3 App自动化测试源码 11.3.4 Web自动化测试源码 11.4 定时任务调用 附录A 常用软件安装包链接 附录B Autotestplat使用指南 后记
一、漏测的概率 漏测,是指软件产品的缺陷没有在测试过程中被发现,而是在版本发布之后,用户在使用过程中发现存在的缺陷。 二、预防漏测的意义 我们都知道,缺陷越早被发现,发现和解决缺陷所花的成本就越小,如果缺陷是在测试中发现的,那么所花的成本将小得多。测试 是保证软件质量的最重要手段之一,因此,进行漏测分析、预防漏测、促使缺陷尽可能在开发过程早期被发现,是非常有意义的,它有 利于降低软件产品成本、提高软件产品质量。 三、原因分析 谁都不敢打包票说自己经手测试的东西没有问题,包括资深的测试工程师,或多或少的会出现让缺陷从自己的手中溜走,谁也不能 把软件所有的功能操作、运用场景想周全,但是像神一样的老鸟我就不知道了。 漏测原因 对应解决方法 1.需求规格不明确,导致测试用例编写过于粗犷。 1.先进行需求分析,找出需求规格说明书中不明确、或有疑虑的地方,与需求人员(产品)确认商讨,给出明确定义。 2.在测试过程中发现没有明确和有疑惑点的,也要与需求人员确认商讨,要求给出明确写定义,之后完成测试用例。 3.无法及时确定的,可先编写大概框架,之后再将测试用例细化,补充完善。 2.需求规格变更,测试用例未及时更新 需求规格变更,导致原来的测试用例与现在的规格不相符合。我们在执行测试用例过程中,如果碰到测试用例与规格不相符合的地方,我们需要记录下,并根据新规格补充完善测试用例,对存在有疑问的地方需要和产品或设计进行沟通和确认,可以要求需求规格进行明确定义,事后将新增的、修改的测试用例整理成文,发给组内同事组织评审,并将评审之后的用例更新到用例库中去。 3.测试用例覆盖不全面,场景出现遗漏 因为测试用例场景设计导致缺陷遗漏是在所难免的,编写测试用例的同事不可能把所有的场景都能想周全,把所有的场景下的 情况都写成测试用例这也是不大现实的。对于外部反馈的缺陷,是因为场景设计不全引起的,我们先分析出现问题的场景是客户必须的场景还是偶然的场景,如果该场景是客户操作习惯,我们可以通过和技术接口人沟通,确认该场景的一些具体细节,在完善测试用例的过程中我们也要考虑一些和该场景相关联的场景,将多种场景下测试用例及时完善、评审,增加到用例库中 4.测试过程中未严格按照测试用例执行 我们需要面对现实,测试用例并不能覆盖所有的使用场景,但是,测试用例是按需求根据规格编写的,经过了需求分析、开发、测试及其他相关人员的评审,最大程度的保证用例的准确性、全面性。测试用例不一定能保证所有的场景和功能点都能覆盖到,但是严格按照测试用例执行测试,能最大程度上保证我们的软件质量,尽量避免出现缺陷。就一句话,我们在测试过程中要严格按照测试用例执行,不要因为测试用例的繁琐而抛弃测试用例,进行随意的测试。如果是因为测试过程中随意的测试,导致出现遗漏问题,实在是不应该。 5.时间不充足,导致一些功能点在测试过程中被忽略 1,根据功能模块划分测试优先级,主要的功能模块优先级最高,安排有经验的人测试,安排新手测试一些不重要的功能模块或者很少使用的功能模块,在后续测试过程中,由有经验的同学将新手测试过的模块进行冒烟测试,确认是否有明显BUG; 2,尽量避免在一些和开发扯不清的情况下浪费自己的时间,如果因为开发人员排查问题占用的时间较长,可以告诉测试负责人,由测试负责人采取相应措施,通过协商来避免类似问题蔓延; 3,增加测试人手 4,加班 6.测试环境受限,导致缺陷漏测 1.原因:环境的组合是无穷的,没有足够的时间、人力和其他资源成本在足够在足够多的环境中测试。 2.措施:保证主要的操作系统环境,网络环境 操作系统:针对当前使用比例来排序 网络环境:正常网速、低网速 7.开发人员引入的新BUG 8.对产品和应用流程的理解不到位 验证开发人员修复的BUG,并将相关联的功能点遍历到 方法:根据开发人员的水平,选择合适的回归测试策略。 四、目的 不管是因为什么原因导致缺陷流到客户现场,问题发生了,我们首先要做的就是弥补缺陷带来的影响,项目组要评估由此带来的风险、损失,修正缺陷,提供完善的版本给客户使用。做完前面的这些工作之后,我们可以、甚至是需要自觉的进行思考总结,吸取经验教训,并将出问题的这些情况补充、完善到测试用例中去,对一些常见的情况还需要进行组内学习,避免在以后的工作中再次犯下同样的错误。 如果能做的更好一步,我们可以学习并进行统计,对这些遗漏的BUG予以分类,缺陷的严重程度、所属功能模块、遗漏原因分类等等。我们在进行缺陷漏测分类活动时,可以由专人组织发起讨论,将需求、开发、测试、技术支持以及其他所有产品生命周期中相关部门的代表组织到一起对近期的漏测进行分析讨论,特别是技术支持人员能够提供很多非常详细的关于漏测缺陷的信息,这对漏测分类、累积经验、教训吸取非常有帮助。 进行缺陷漏测分析的目的是为了促进软件质量和开发测试过程得到持续改进,使我们在测试过程中可以考虑得更加周全,弥补思维僵局。具体来讲,就是通过分析测试过程中漏测的缺陷,采取一些相应的预防措施以避免今后再发生类似的漏测。测试过程的持续改进将提高测试环境的效果和测试执行的效率、降低遗留到用户处的缺陷数和缺陷解决成本,从而提升软件的质量。 五、总结 缺陷漏测是不能杜绝的,缺陷漏测发生后,我们需要学会思考,吸取经验教训,尽可能的降低缺陷的漏测量。 来源:http://blog.51cto.com/11392572/2105018 作者 七色洋
一 Appium 官网:http://appium.io AppUI自动化测试 Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。 二 Selenium 官网:https://www.seleniumhq.org/download/ WebUI自动化测试 Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。 三 Jmeter 官网:https://jmeter.apache.org 接口测试,性能测试 JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现; JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。 四 Postman 官网:https://www.getpostman.com 接口测试 Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。 五 Soapui 官网:https://www.soapui.org 接口测试 SoapUI提供了所有所需的工具来测试和完善的测试。总览标签给你一个项目的所有内容和全面的看法。只需一次点击,您可以添加任何数量的断言为验证传入的消息TestStep。使用功能强大的HTTP监视器记录,分析甚至修改客户机 - 服务器通信,因为它发生。和SoapUI临带来了更专业和先进的功能,保持遥遥领先其他测试工具。轻松创建和运行数据驱动测试。该数据源TestStep读取测试数据从任何外部来源 - Excel中,XML,JDBC,文件,等等 - 到标准SoapUI属性。 六 Monkey 稳定性测试 软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件, 压力测试结果:崩溃crash,无响应anr, 基本命令:adb shell monkey 1000。 七 Robot 官网:http://robotframework.org WebUI自动化测试,接口测试 Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。 八 QTP 官网:https://software.microfocus.com/en-us/products/unified-functional-automated-testing/overview WebUI自动化测试 HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。目前版本名为Unified Functional Testing,简称UFT。 九 Locust 官网:https://www.locust.io 性能测试 Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学。它的主要思想就是模拟一群用户将访问你的网站。每个用户的行为由你编写的python代码定义,同时可以从Web界面中实时观察到用户的行为。 十 Loadrunner 官网:https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview 性能测试 LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。 十一 GT 官网:http://gt.qq.com/index.html App性能测试 GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。利用GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。 十二 Appscan 官网:https://www.ibm.com/developerworks/downloads/r/appscan/ 安全测试 IBM® Security AppScan® 是一个适合安全专家的 Web 应用程序和 Web 服务渗透测试解决方案,对现代 Web 应用程序和服务执行自动化的动态应用程序安全测试 (DAST) 和交互式应用程序安全测试 (IAST),支持 Web 2.0、JavaScript 和 AJAX 框架的全面的 JavaScript 执行引擎,涵盖 XML 和 JSON 基础架构的 SOAP 和 REST Web 服务测试支持 WS-Security 标准、XML 加密和 XML 签名,详细的漏洞公告和修复建议。
TechWeb报道】美西时间3月19日,在GDC开幕第一天的Google开发者专场,Google发布了一款由网易研发的UI自动化测试方案:Airtest Project。Google方面评价,这可能是目前世界上最好的安卓游戏自动化测试方案。 AirtestIDE是一个跨平台的UI自动化测试编辑器,目前已经支持安卓手游、Windows端游和安卓App,后续还将支持iOS手游。在网易游戏内部,这项技术已经被应用到《梦幻西游》手游、《大话西游》手游、《阴阳师》、《荒野行动》、《终结者2:审判日》等多款重点产品的测试当中。 具体来说,AirtestIDE拥有基于图像识别的Airtest框架,使用者无需接入代码,只要在设备窗口操作手机,代码即会在代码窗口自动生成。如果开发者认为图标不够精确,还可以通过手动框选图标或是其他方式来生成模拟输入语句。 AirtestIDE还拥有基于UI控件搜索的POCO框架,可以直接获取UI结构,检视UI控件。它支持Unity3D、Cocos2dx等主流游戏引擎及Android源生App,开发者也可以通过扩展SDK支持其他游戏引擎或任意UI系统。 在实际测试过程中,AirtestIDE可以为测试人员定位异常测试点,回放每一个操作步骤,最后还会生成一份报告,以方便测试人员排查细节错误。 此外,AirtestIDE中录制和运行的代码都基于Python2.7语言。新手上手比较容易,熟练的开发者也可以通过添加第三方库和工具增强自己的脚本。同时,这项工具还可以与持续集成相结合,甚至以此技术为基础搭建云测试平台。 在以往的测试过程中,开发者往往需要在几百台安卓手机上测试游戏的兼容性。但通过AirtestIDE可视化、易于编辑的界面与功能,开发者只需录制一次测试脚本即可实现多端运行,这大幅度减少了人力及时间成本。而对于Google来说,AirtestIDE能够为全世界的安卓开发者提供一套自动化的游戏测试解决方案,改善安卓开发的生态环境。这或许也是他们在GDC上宣布与网易合作,并在Firebase Test Lab中支持这项技术的原因。 网易方面称,Google未来还愿意继续与他们合作,将机器学习应用在游戏的开发与测试方面。或许这也是中国研发技术在国际上开始受到认可的标志。目前Airtest Project已分享至Github(https://github.com/AirtestProject)开源使用,开发者也可以至官网(http://airtest.netease.com/)进行查看和下载。 此外,Google还将在美西时间3月21日对Airtest Project进行专场演讲,现场还将邀请到网易游戏QA团队的技术总监刘欣进行现场演示。全球开发者也可以在GDC期间前往Google展台与网易游戏QA团队进行交流。 自2014年开始,网易就在通过网易游戏学院在线上分享经验,并在线下举办多次公开日活动,为行业培养更多人才。如今它又与Google合作,开源了一款能够切实提升游戏开发效率的技术工具。希望像网易这样具有分享精神的游戏厂商越来越多,和其他团队共同抬高游戏行业的上限,做出更多精致有趣的产品。