精华内容
下载资源
问答
  • 抽象的自动化执行
    千次阅读
    2022-02-27 17:07:50
    自动化测试框架有很多种,常见的自动化框架分类如下:
    在使用上面的自动化框架时,通常会结合使用分层思想,也就是一些自动化框架设计模式,今天重点分享一下UI自动化框架设计使用比较多的一种设计模式:Page Object设计模式。
    一、什么是PO模式?
    PO模式,全称为Page Object Model ,简称POM,是页面对象模式。
    对页面进行抽象或建模的过程,把一个具体的页面转化为编程语言当中的一个对象,页面特性转化成对象属性,页面操作转化为对象方法。把页面的元素设计为页面对象的属性,把页面上的操作(如点击、输入等)设计为页面对象的行为。
    在自动化测试当中,主要用来实现对页面操作和测试逻辑的一个分离,目的是达到业务和实现分开,使自动化测试脚本具备更高的可维护性。
    二、PO模式的做法:
    • 以页面为单位独立建模
    • 隐藏实现细节
    • 本质是面向接口编程
    三、PO模式的优点:
    • 减少重复find click样板代码
    • 提高易读性
    • 页面修改不影响测试用例
    四、PO模式六大设计原则:
    1. 用公共方法代表UI所提供的功能,比如把登录封装成一个 login 方法,把搜索方法封装成一个设施方法,把注册操作封装成一个 register 的方法
    2. 方法应该返回其他的Page Object或者返回用于断言的数据
    3. 同样的行为不同的结果可以建模为不同的方法,比如说登录成功有跳转,登录失败有报错,还有一种登陆授权的状况,那么可以封装成三个单独的方法:login success、login error、login invalid
    4. 不在方法内加断言,做到页面逻辑和测试逻辑的分离
    5. 不暴露页面的内部元素给外部,比如一个HTML的页面还有一个页面的上下结构
    6. 不需要建模UI内的所有元素,用到什么逻辑就封装什么
    五、UI自动化测试用例如何设计
    UI自动化测试用例是从手工测试用例中提取出来的,跟手工测试用例相比,自动化测试用例更加注重用例的严谨性,选择用例的时候遵循以下原则:
    • 优先选取覆盖产品核心功能的用例;
    • 从成本考量,不要选择流程过于复杂的用例;
    • 选取的用例可以是重复执行,繁琐的部分,比如字段验证、提示信息验证;
    • 优先实现正向的测试用例,反向用例一般情况复杂、数量多;
    六、怎么提高UI自动化脚本的稳定性
    • 尽量用相对路径的xpath表达式
    • 查找元素优先用显示等待
    • 用例与用例之间尽量避免产生依赖,用例可以独立执行
    • 用例执行结束后对测试场景进行还原,避免影响其他用例的执行
    • 脚本执行失败后加入重试机制,提升用例的稳定性
    • 尽量保证单独的测试环境,避免其他的测试同步进行

    欢迎关注公众号:测试记

    更多相关内容
  • 大家都知道抽象类无法实例,就无法创建对象。所以下面这篇文章主要给大家介绍了关于Java实例一个抽象类对象的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧...
  • 本报告将首先通过数据和经验分析为什么自动化漏洞挖掘如此困难, 然后尝试解答为什么人们认为简单的方法(例如模糊测试) 被认为比复杂的技术(例如符号执行) 要更加有效。 随后,本报告将讨论一种提升漏洞挖掘...
  • 1.7 适合自动化测试的工具 支持脚本化语言(Scripting Language) 对程序界面中对象的识别能力 支持函数的可重用性 支持外部函数库 抽象层—将程序界面中的对象实体映射成逻辑对象 支持数据驱动测试(Data-Driven Test...
    万叶集
    🎉 隐约雷鸣,阴霾天空。 🎉
    🎉 但盼风雨来,能留你在此。 🎉

    前言
    ✌ 作者简介:渴望力量的哈士奇 ✌,大家可以叫我 🐶哈士奇🐶 ,一位致力于 TFS 赋能的博主 ✌
    🏆 CSDN博客专家认证、新星计划第三季全栈赛道 top_1 、华为云享专家、阿里云专家博主 🏆
    📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
    💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬
    🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦


    专栏系列(点击解锁)学习路线指引知识定位
    🔥Python全栈白皮书🔥 零基础入门篇 以浅显易懂的方式轻松入门,让你彻底爱上Python的魅力。
    语法进阶篇 主要围绕多线程编程、正则表达式学习、含贴近实战的项目练习 。
    自动化办公篇 实现日常办公软件的自动化操作,节省时间、提高办公效率。
    自动化测试实战篇 从实战的角度出发,先人一步,快速转型测试开发工程师。
    数据库开发实战篇 更新中
    爬虫入门与实战 更新中
    数据分析篇 更新中
    前端入门+flask 全栈篇 更新中
    django+vue全栈篇 更新中
    拓展-人工智能入门 更新中
    网络安全之路 踩坑篇 记录学习及演练过程中遇到的坑,便于后来居上者
    网安知识扫盲篇 三天打鱼,不深入了解原理,只会让你成为脚本小子。
    vulhub靶场漏洞复现 让漏洞复现变得简单,让安全研究者更加专注于漏洞原理本身。
    shell编程篇 不涉及linux基础,最终案例会偏向于安全加固方向。 [待完结]
    WEB漏洞攻防篇 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    渗透工具使用集锦 2021年9月3日停止更新,转战先知社区等安全社区及小密圈
    点点点工程师 测试神器 - Charles 软件测试数据包抓包分析神器
    测试神器 - Fiddler 一文学会 fiddle ,学不会倒立吃翔,稀得!
    测试神器 - Jmeter 不仅是性能测试神器,更可用于搭建轻量级接口自动化测试框架。
    RobotFrameWork Python实现的自动化测试利器,该篇章仅介绍UI自动化部分。
    Java实现UI自动化 文档写于2016年,Java实现的UI自动化,仍有借鉴意义。
    MonkeyRunner 该工具目前的应用场景已不多,文档已删,为了排版好看才留着。

    基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍

    基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作

    基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 元素定位

    基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 -常见的页面元素操作

    基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - iframe元素定位

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 元素定位场景分析

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象属性

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 获取测试对象状态

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 第三方控件类操作

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 执行JS操作

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - WebDriver的三种等待方式

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 模拟键盘操作

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 代码检查点[验证点/断言]与图像检查点

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 验证码处理

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - cookie操作

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - exe文件执行

    基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - grid [跨浏览器远程测试-可分布式]

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 框架设计小结

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - testng使用

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - 关于如何手动下载JAR包

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant安装、环境变量配置、ant实例及运行Ant Build 出现问题的解决方法

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用testng文件及ant 调用testng遇到的问题

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant调用email 自动发送邮件

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - ant使用 - ant发送邮件显示源码的解决方法

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - XSLT (报告、模板框架)

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - Jenkins[定时计划执行任务]

    基于JAVA实现的WEB端UI自动化 - WebDriver框架篇 - 内部框架及UI自动化测试框架思维导图

    完结!撒花!✿✿ヽ(°▽°)ノ✿

    1 - Web自动化测试简介

    • 软件测试领域技术不断创新
    • 手工测试重复性工作量较大
    • 技术革新,通过使用工具或者脚本代码让计算机帮助测试人员完成一些简单操作

    1.1 自动化测试的本质

    • 其本质是把手工测试转化成使用计算机、软件、程序来测试产品的过程。在设计
      测试用例并通过评审之后,由测试人员根据测试用例中描述的步骤来一步一步执 行测试代码,得到的实际结果与期望结果进行比较。

    • 重复姓的测试工作在时间紧迫的情况下会有范围遗漏,为了节省人力、时间、资 源、提高测试效率,保证测试范围,引入了自动化测试概念。

    1.2 自动化真的具有绝对的高效性?

    • 自动化并不是绝对的完全高效率。
    • 在产品需求变更频繁,项目周期较短,开发人员代码不够规范的情况下,给自动化脚本的编写也带来大量的修改。甚至因为开发人员编写的代码的问题从而提升 了自动化脚本编写的难度,需要花费大量的时间去解决一些脚本编写过程中遇到 的一些未知的问题,那么这种情况下,手工测试往往要比自动化测试要更有效率。

    1.3 手工测试与自动化测试的比较

    • 通常情况下,测试的工作量会占据整个项目的的40%-60%的开发时间,甚至有的
      时候开发工作还没有开始,测试人员就已经介入了项目。
      测试过程中,许多的过程是重复性、非智力性、非创造性、并要求做准确细致的工作,这个时候计算机就是最适合代替人工去完成这样任务的角色。
    • 自动化测试是相对手工测试而存在的,主要是通过软件测试工具、脚本等来实现的,自动化测试脚本具有良好的可操作性、可重复利用性和效率高等特点。

    1.4 手工测试的局限性与自动化测试的优势

    手工测试的局限性:

    • 手工测试无法覆盖所有的代码路径
    • 简单的功能性测试用例在每一轮的测试中都不能少,而且具有一定的机械性、重 复性,工作量较大,影响效率。
    • 举例:如果有大量(几千)的用例,短时间内,手工测试往往是做不到的。

    自动化测试的优势:

    • 缩短软件开发测试周期,可以让产品更快的投放市场。
    • 测试效率高,可以充分利用硬件测试资源
    • 节省人力资源,降低测试成本
    • 增强测试的稳定性和可靠性
    • 提高软件测试的的准确度和精确度,从而增加软件的信任度
    • 使测试工作相对比较容易,但能产生更高质量的测试结果

    附:自动化测试绝不是因为厌倦了重复的测试工作,想要取代掉手工测试。相反的 是因为测试工作的需要,更准确的说是为了回归测试和系统测试的需要。

    1.5 自动化测试介入的场景

    那么问题来了,自动化能否取代手工测试?

    首先,我们要考虑的是,什么样的项目适合自动化?

    • 决定项目能否采用自动化测试,通常从以下几个方面考虑:
      • 需求的变更有计划性,且变更的频率不高
      • 项目的周期较长,硬件软件人工资源配置丰富。
      • 自动化脚本的重复使用率高
      • 开发人员代码编写的规范性

    在确定了什么样的项目可以使用自动化之后,身为测试人员还要考虑在项目中, 那些部分适合自动化。

    • 普遍的观点是:很多人认为自动化更适合回归测试和API测试,手工测试更 适合做验收测试和GUI测试。

    • 其实正确的观点:区分手工测试和自动化测试的,实际上与API还是GUI,回归测试还是功能测试都没有关系。应该从代码是业务逻辑相关还是基础性代码这两个方面出发考虑。

      • 业务逻辑代码:对应终端用户使用的哪些功能,是实际完成工作的。

      • 基础性代码:确保业务逻辑代码运行在合适的环境中。起支撑作用而彼此之间又相对独立,并不存在业务关系。

      • 两种代码都要测试,手工测试更适合测试业务逻辑。

    • 手工测试适合成为领域专家,他们可以把想当复杂的业务逻辑存在最强力的测试工具—大脑里。而且手工测试速度比较慢,测试人员就有时间可以观察分析细微的逻辑问题。速度虽然慢,但是比较容易。

    • 自动化测试胜在测试底层的细节。自动化可以测试错误返回值、返回码、异常和内存使用等等。速度快但是也困难些。相对业务逻辑进行自动化测试比较困难, 风险也略大。

    1.6 自动化测试的流程

    需求分析>>>自动化测试规划>>>自动化测试脚本编写>>>测试执行>>>测试总结

    自动化测试规划:功能>>>自动化>>>安全(渗透)>>>性能

    关于"安全(渗透)"这一块的"自动化"16年在写这一份文档的时候仅仅停留在字面的概念上,随着近两年学习从事安全领域以及所做的一些漏洞挖掘之后对这一块有了很深刻的印象。比如圈内一些很厉害的白帽子师傅通过自己编写的自动化脚本以及POC、EXP然后进行全网的扫描[此时已经不仅仅是局限于某个产品端了],可以挖掘大量的高危漏洞甚至可以直接getshell。

    需要说明的是 “安全(渗透)测试” 虽然也是"测试",但与传统意义上的软件测试还是有很大区别的。就我个人的理解 “安全(渗透)测试” 是一门领域性的技能和应用场景,虽然在某些方面有些许的重叠,比如安全领域的"逻辑漏洞" 与测试人员测出的功能上的BUG 。但是其还是有本质上的区别的。

    1.7 适合自动化测试的工具

    • 支持脚本化语言(Scripting Language)
    • 对程序界面中对象的识别能力
    • 支持函数的可重用性
    • 支持外部函数库
    • 抽象层—将程序界面中的对象实体映射成逻辑对象
    • 支持数据驱动测试(Data-Driven Test)
    • 错误处理
    • 调试器(Debugger)
    • 源代码管理
    • 支持脚本的命令行(Command Line)方式

    2 - 常用的自动化测试工具

    2.1 QTP

    • QTP是由HP提供的侧重于功能的回归自动化测试工具;提供了好很多插件,如.NET的,Java的,SAP的,Terminal Emulator的等等,分别用于格子类型 的产品测试。默认提供Web,ActiveX和VB。【讲道理,目前我所接触的项目还没有使用该工具的前几年从朋友那里了解到 交行与东航貌似还在使用该工具,不过该工具的最新版本已经叫 “UTF” 了,下文有介绍】

    • QTP 的脚本语言是VBScript,这对于测试人员来说,感觉要“舒服”的多。VBscript毕竟是一种松散的、被阉割的、普及面很广的语言。【其实就是弱类型语言】

    • QTP支持录制和回放的功能。
      录制产生的脚本,可以用来作为自己编写的template。
      录制时还支持lower lever功能,该功能用于QTP不易识别的对象使用,不 过它是使用坐标来标识的,对于坐标位置频繁变动的对象,此种方法不可取。
      QTP编辑器:Keyword模式与Expert模式。
      Keyword模式:类似RobotFrameWork的表格视图。
      Expert模式:代码视图。

    2.2 Selenium(Webdriver)

    • 价格:开源、免费
      相较于QTP而言(商业版、收费的、一个lessons大概价格100万美金左右)
      绝大多数的公司在商业版软件上更愿意选择使用Selenium完成同样工作的高级自动化测试人才,毕竟大多数的公司的最终目的还是以营利为主。【插句题外话,商业版的软件往往在报告输出上做的非常完善。】

    • 应用领域:基于浏览器的Web端自动化测试,Selenium仅支持Web页面的测试工作;
      QTP不仅支持Web界面的测试工作,还支持Client方面的测试,这一点上是 Selenium的不足之处。

    • 功能方面:
      录制功能方面,QTP要强于Selenium。
      QTP录制回放成功率很高,但是Selenium的录制回放功能成功率就非常的低, 所以我们在测试过程中也不会使用录制功能。
      脚本的编辑方面,不好判断。
      熟悉Java、Python等的人,会比较喜欢Selenium,
      熟悉VBScript就比较喜欢QTP。

    • 框架处理能力:
      在数据驱动方面,QTP支持很灵活,可以通过简单的设置就可以完成数据驱动的自动化脚本。
      Selenium需要编程来实现才可以。但是这点并不能说明Selenium在框架的处 理能力上就比QTP差。Selenium提供了更加开阔的框架处理能力给客户看, 用户可以根据自己的实际情况开发出更适合自己的自动化测试脚本。
      举例:在进行Web端页面测试的过程中,我们不能保证页面就是恒定不变的, 所以这个时候,在自动化测试平台中就可以有一个页面层,页面变化了,只 需要通过修改页面层的代码(元素定位)来适应,而不需要去修改在页面之 后的测试用例代码。这样就可以简化我们的代码的工作量。

    • 用户仿真:
      Selenium在浏览器后台执行,它通过修改HTML的DOM(文档对象模型)来 执行操作,实际上是通过JavaScript来控制的。执行时窗口可以最小化,可以 在同一个机器执行多个测试Case。
      QTP是完全模拟终端用户,独占屏幕,同一时间只能开启一个独占的实例。
      在并发性上来讲,Selenium更好一些。

    • UI组件支持:
      Selenium支持主要的组件,但是某些特殊事件、方法和对象属性支持不够
      QTP提供了良好的支持,通过收费的插件,提供了对各种组件的支持。

    • 对象识别:
      QTP所见即所得,用SPY插件、对象库的方式获取
      Selenium提供的是各种对象识别接口来识别

    • 支持的平台:
      Selenium支持多种语言,可以跨平台。
      QTP只使用于windows。

    • 脚本创建:
      QTP视乎更容易一些
      Selenium略难,需要一定的代码知识能力

    2.3 UFT(Unified Functionnal Testing)

    UFT是QTP的新名字,叫统一功能测试框架,较QTP而言增加了一些新的功能。

    • Insight智能图像识别
      图像识别一直是自动化测试的阻碍之一。包含游戏自动化、flash动态的一些 自动化。
      附:这个图像识别比较类似sikuli的方式,以图像方式进行识别,所以对验证 码等的识别没有太大的作用。(白兴奋了 o(╯□╰)o)【不知道几年过去了,UFT这方面有没有长进】

    • 多脚本调试(个人观点,鸡肋。类似于开多个窗口进行调试)

    • PDF文本验证点
      现在UFT可以识别PDF文件并对他们直接进行比较,甚至可以插入文本验证点。

    • 支持开源CI(鸡肋,现在大多数自动化测试工具都支持CI)

    • 支持移动设备(仍然鸡肋,移动端自动化的工具也很多)

    2.4 RFT(IBM Rational Functionnal Tester)

    IBM的一款适合功能测试、回归测试的自动化测试工具。
    它的基础是针对于Java、.NET的对象技术和基于Web应用程序的录制与回放,
    我们可以利用它以Eclipse为核心的特点用Java脚本自行编写更具有灵活性的自动化测试脚本用于日场和回归测试。这款自动化测试框架是在Selenium出现之前大家认为最容易进行扩展的一个框架。
    TIP:尽管RFT提供了录制和回放的功能来开发自动化脚本,但这并不是一个很好的方法,很多测试团队也并没有采用,因为录制与回放功能对于程序运行的环境运行依赖性太大,包括了程序的位置、窗口的分辨率,每个变化都将会导致脚本无法正确的运行,因此更多使用该工具的测试团队采用了自己手动写脚本的方式来提高脚本的易读性以及可维护性。

    • 框架结构:
      RFT的脚本可以分别被归类为AppObjects、Tasks和Testcases
      AppObjects:定义页面上的元素。在测试过程中,所有用到的页面元素都定
      义并储存在这一层中,这一层还包含了所有页面上显示的字符串。
      Tasks:定义可以单元化,可重用的任务,调用在AppObjects中定义的元素。
      Testcases:一个case写成一个脚本,每个测试场景,可以写成一个或多个脚 本,每个脚本只调用Tasks中定义的可重用的任务。
      附:这个架构的分层架构思路基本与WebDriver的分层架构思路一致。

    • 传播与使用范围

      • 帮助文档和教程很少,很不系统。而提供额API接口只有说明文档,未 提供如何使用该文档;提供的例子很少。
      • 环境要求较高,至少得1G内存才能比较顺畅使用,512内存比较卡, 速度慢
      • 参数化只支持使用XML格式文件来存储测试数据
      • 回放速度超级慢
        附:所以才有了Selenium开发以后的强势和很多之前RFT使用者可以快速上手。

    2.5 Monkeyrunner(手机自动化工具)

    目前Android SDK里自带的现成的测试工具

    Monkey和MonkeyRunner

    Monkey:主要用于压力和性能测试上,运行该命令可以随机地向目标程序发送各种模拟键盘事件流,并且可以自定义发送的次数,以此观察被测应用程序的稳定性和可靠性,应用比较简单,记住那几个命令就可以了。

    MonkeRunner:相比较之下更强大一些,主要用于功能测试,回归测试。并且可以自定义测试扩展,灵活性较强,测试人员可以完全控制。

    2.6 Robotium(手机自动化工具)

    Robotium是一款测试Abdroid Application的测试框架,它使得编写黑盒测试代码更 加容易和稳定。通过使用Robotium,测试用例开发人员能够跨越多个Activity,开 发出功能、系统以及验收测试用例。
    Robotium是基于Android测试框架InstrumentTestCase2进行的2次封装,把一些基 本操作又简化了一遍。

    也是最近比较流行和正在上升势头的手机自动化测试工具。

    优势如下:

    • 针对黑盒测试
    • 在测试过程中,不必需要测试程序的源代码,只要apk文件(前提是需要知 道测试程序的package和activity)
    • 可以直接运行在手机上,并通过adb端获得运行结果。

    附:在使用该工具的时候有一必须点:当编辑完测试脚本后,会生成一个apk文件, 将该apk安装到手机端,并通过adb输入一系列命令后直接运行测试脚本。但 该apk的签名必须要与测试程序的apk签名保持一致。

    2.7 Sikuli(新型思路的自动化测试工具)

    创新的图形化编程技术

    Sikuli是由MIT的研究团队发布的新型图形化编程技术。它以图像检索技术为基础, 提供了一套基于Jython(Python语言在java中的完整实现)的脚本语言以及集成开发 环境。使用者可利用屏幕截图直接引用GUI元素进行编程,完成交互操作。Sikuli 一词取自墨西哥Huichol Indian 土著语,意为“上帝之眼”,正如其开发者所说–Sikuli 让电脑能像人一样“看”这个“真实世界”。

    • Sikuli脚本
      Sikuli的脚本编写遵循Python语法规范,其本身提供了多种自定义类及其自 定义方法,其详细介绍可参见其官方网站文档。由于Sikuli基于Jython,其核 心代码由Java编写,可在用户自定义的Java工程中将其作为Java标准类库 进行引用,其官方网站亦提供了JavaDoc供参考。

    • 下图为自动打开FireFox浏览器,并登陆Gmail的简单实例,快速一览Sikuli 脚本的独特之处。


    在这里插入图片描述


    2.8为什么选择Selenium(Webdriver)

    · 开源免费
    · 使用灵活简单
    · 后期用例易于维护
    · 支持多种语言
    · 容易与单元测试框架结合
    · 可支持多浏览器同时,支持远程启动其他服务器
    · 高度复用性
    · 代码自主掌控,对于搭建框架、平台等有不可替代的优势
    

    3 - 测试自动化和自动化测试

    3.1 什么是测试自动化?

    这是一种让测试过程脱离人工的一次变革。对于控制成本,控制质量,回溯 质量和减少周期都有积极影响的一种研发过程。

    3.2 什么是自动化测试?

    • 通过将测试执行部分或者全部交由机器执行的一种测试,叫做自动化测 试。这种测试不需要人的实时参与。同时这种测试在小规模应用时会比手工测试昂贵许多。

    • 所以自动化测试可以看做测试自动化的一部分。

    3.3 不同的工程师,工作不同

    • 一个自动化工程师,会比较专注于测试工具的研发。最主要的是这个工程师 会从成本的角度去考虑问题。这一点比较像PM。他所做的一切是为了减少 自己或者团队的工作量,尽可能的将重复的,有规律可循的工作代码化,自 动化。

    • 一个自动化测试工程师,会比较专注于测试代码的开发,以及测试结果的分 析。对于被测设备本身非常感兴趣。他们比较倾向于一种完美主义者,追求 的是高质量而经常忽略成本。这一点更像是开发人员

    • 现在绝大多数公司都会执着于自动化测试,而忽略测试自动化。这一点会让 整个AT(automation test)成本变得非常高。

    3.4 自动化测试的几个准则:

    • 并不是将测试用例代码化了,就可以称之为自动化测试了。这是现在很多公司宣称自己做AT的一个噱头。
    • AT的代码是有很多的要求。
    • 首先就是你的覆盖面要广。个位数case的自动化完全没有意义。
    • 第二就是你的case必须要能够复用:软件每天都在变,如果你的case要天天跟着软件变,那你的case是完全不合格的
    • 第三就是测试规模要够大:要么时间长(case多),要么测试产品多。这样 才能体现出来自动化测试的优势。

    3.5 测试自动化的几个准则:

    • 一就是要减少除工具研发部门外,其他所有测试部门的人力成本。这就是测 试自动化追求的终极目标之一。

    • 二就是提高测试质量,不仅仅包括测试执行的质量,还包括测试的统计质量, 数据回溯质量等等等等。这些质量的提高可以帮助测试团队修正他们的测试 方法,而不是每天将精力扑在无止境的数据收集和分析中。

    • 三则是要抢出时间。某一项工作自动化后的时间,要么比人手做时间短,要 么可以在非工作的16个小时中进行。通过让电脑OT的方法来解放工程师和项目经理。

    4 - 自动化测试三个阶段

    4.1 基本脚本设计阶段

    自动化测试:用例代码化
    将要进行测试的功能代码化,能够将线性流程通过自动化脚本完成测试
    举例:注册>>>登录>>>购物>>>支付>>>确认收货>>>退出

    4.2 框架脚本设计阶段

    测试自动化:繁杂的工作简要化,使用框架设计的手段。(数据驱动、关键字驱动、分层架构的思想)[测试自动化第一步]

    4.3 平台设计阶段

    如何开发一个自动化测试平台?讲道理,你都能搞定自动化测试平台了还干啥测试啊,产品经理、研发、架构师它不香么?等有时间了看看能不能把 "87test团队、雷子师傅"他们的自动化平台白嫖一个,到时候放出一个思维导图

    5 - 自动化环境搭建准备与相关工具

    这里以前写过一篇关于自动化环境搭建的文档,找到了再放出来把。

    暂时没找到,先放一个大概通用的吧。

    关于浏览器

    浏览器(开发者工具使用【F12】)
    Chrome(版本不要太高),同时注意驱动对应的浏览前版本
    Firefox (版本不要太高),同时注意驱动对应的浏览前版本
    IE9、IE10
    详见:浏览器版本与DriverServer对应表与资源 http://www.cnblogs.com/alisapan/p/6428695.html

    Selenium IDE(火狐浏览器上的插件)

    • 在进行元素定位操作时,可通过Selenium IDE进行捕捉元素的定位

    Java环境

    安装JDK,并配置环境变量。推荐1.8

    同时还需要注意JDK在Selenium 兼容上存在一定的问题。

    Eclipse/IDEA

    WebDriver Jar包

    单元测试框架 Testng

    tetsng安装方法:https://www.cnblogs.com/xusweeter/p/6559196.html

    展开全文
  • 软件测试是排除软件故障,提高软件质量和可靠性的重要手段。从是否需要执行被测程序角度考虑,软件测试分为静态测试和动态测试。...依据该算法开发了自动化测试工具,给出了实验结果和对比分析,并指出了下
  • 自动化测试方案设计和实现

    千次阅读 2020-10-31 16:08:05
    自动化测试方案设计和实现

    编辑推荐:
    本文主要介绍了几种测试类型需求,以及自动化测试方案设计和实现,希望对您的学习有所帮助。

    本文来自于知乎,由火龙果软件Alice编辑、推荐。

    如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以810119819,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

    背景

    为了充分利用云测试平台维护的设备,提升空闲设备使用率,开展自动化测试替代部分回归测试、重复性测试和多设备兼容测试,同时满足如下几种类型的自动化测试需求:

    随机测试(monkey、随机操作指令):

    在多设备执行的基础上完成安装、启动、覆盖安装、monkey 测试 / 随机指令、卸载等一系列操作。

    遍历测试(深度遍历、智能探索):

    在 monkey 测试 / 随机指令的基础上,对执行步骤进行改造,将随机操作替换为 app 内部页面的深度遍历,设计算法策略在一定程度上对被测 app 进行智能探索操作。

    UI 自动化测试(appium):

    在自动化测试框架支持的基础上,提供多设备脚本运行能力,测试开发人员只需要编写符合规则的测试脚本即可以在云测试平台上选择多个设备进行测试,获得测试结果。

    在以上自动化测试的同时,测试报告中需要体现如下内容:

    1.实时生成测试报告、测试结果数据

    2.实时获取设备的日志并有对应的分析结果

    3.可控的自动化测试过程

    4.执行过程中设备页面截图或录制视频

    5.测试结果中设备类型数据分析

    在上面背景说明中,介绍了几种测试类型需求,前两种的设计流程比较简单,也不需要外部人员的参与,第三种测试类型设计比较复杂,后续文章说明也以第三种测试类型为主。

    自动化执行框架设计

    自动化框架

    在 知乎移动端云测试平台实践(二)—— Agent 设计和实现 中自动化框架调研对比和各大云测试平台的使用,选择了在各方面都具有一定优势的自动化测试框架 appium 作为自动化测试的执行控制层,本地启动 appium hub 的方式接收脚本执行请求,这里就不多加赘述了。

    脚本语言和执行框架

    云测试平台是由 Java + kotlin 开发,客户端控制都是基于 Java 实现,这里自然选择 Java 作为脚本语言,后续的脚本、流程说明也是以 Java 语言实现为主,但是在脚本语言选择上这里不是强制要求,同样可以选择Ruby、Python、PHP,、JavaScript 和 C#,只是后续的实现需要平台多做一步兼容而已。

    在脚本执行方面没有使用类似 junit、testng等第三方的运行框架,主要是为了保持在运行过程中对脚本运行的控制和运行数据的交互,如下是脚本运行实现方案:

    1.由平台提供一定限制范围的脚本编写能力

    主要是指运行过程的脚本编写,以及如何提供类似截图、步骤日志、检查点等公用方法,对于 Java 来说可以将一些公共的方法抽象出来放到脚本的父对象中,通过继承将脚本编写能力赋予给脚本本身,Python 也可以统一一个标准的类库,通过引入的方式使用。

    2.运行时由 agent 动态编译编写完成的脚本,反射实例化脚本对象

    运行时处理脚本需要区分动态语言和非动态语言,还是以 Java、Python 为例,由于没有借用第三方的测试框架,触发脚本运行对于 Java 来说需要进行编译,也就是标题中说到的动态编译,然后通过反射实例化对象运行,这里有两个要求,首先脚本编写需要在云测试平台限定的包内,其次脚本运行、继承的方法需要符合约定的规则。对于 Python 来说先将脚本内容以 IO 的方式写到内存中,然后反射通过字符串的形式,导入模块、去模块寻找约定函数执行。

    3.使用反射实例对象运行脚本,并调用实例中的方法和脚本进行数据、强控制交互

    实例化脚本后开始运行脚本,运行前需要将所需要的运行资料注入到实例中,例如: appium 的 appiumDriver,运行同时可以随时调用实例化对象中的约定方法对脚本运行进行控制,比如获取执行步骤、日志、图片,传递参数,控制脚本暂停、运行、停止等交互,这也是为什么没有使用一些第三方框架来触发测试的原因。

    通过上述过程基本上实现了用例到执行的基本过程,如图:在这里插入图片描述
    也就是说只要提供了符合规范的脚本,就可以利用框架的通用性将脚本运行在任何 appium 支持的设备上,在架构上也剥离了自动化测试最关键的工作部分即:脚本编写,也为脚本管理、数据模板结合等用例的功能丰富提供更多可能性。

    流程设计

    如下是脚本自动化测试完整的业务执行方案:在这里插入图片描述
    自动化测试 UI 代码以 git 工程的方式托管在公司的 git 服务器上,在工程基础上编写脚本,调试脚本通过之后合并入 git 工程,在 gitlab 上每一个脚本都会有一个唯一的地址,通过这个地址可以获取到指定脚本,然后通过接口 / 表单的方式提交脚本运行测试,运行完成得到质量报告。

    值得说明一下的是,在自动化测试过程中,公共方法、selenium / appium 公共 page object 等脚本数据会随着自动化测试的深入越发庞大,所以需要图中的公共方法抽取过程,这样带来的好处是由于脚本的抽取、复用会使脚本的编写效率会越来越快。

    如下是脚本执行流程结构图,包含脚本执行的流程和结果收集:在这里插入图片描述
    脚本执行数据、执行交互设计方案:在这里插入图片描述
    这里主要体现的是脚本和运行平台间的数据交互、执行能力交互,比如脚本执行时需要使用到 appium 的 driver,而这个 driver 是通过平台的设备参数来决定的,在运行时平台动态生成 driver 然后通过协议类的方式注入 driver 到脚本内部,运行过程中通过协议类的停止、暂停、等待、销毁等方法进行控制,运行完成后通过协议类获取到运行结果。在脚本需要一些特定的功能时,也可以通过协议类引入接口方法,然后运行平台通过接口代理的方式动态注入实现类的方式实现。

    在实施的过程中发现有两个难点,主要如下:

    类和第三方包引用管理引起的脚本编译问题

    在自动化测试脚本编写过程中,不可避免需要使用一些引入包,比如一些方便的工具类使用包等,对于 JAVA 脚本来讲更新类、包引入等都需要重新编译部署才可以运行使用,测试平台不可能会因为脚本类、包的变化重新编译部署平台,而脚本的编写绝大部分都是类引入的变化,包引入变化的比例很小,所以在类的变化上使用 Java 动态编译技术解决类的动态引入,第三方的包引入更新则通过平台工程的发版提前引入这些包升级完成。

    协议类和包更新的自动化更新过程

    在云平台和脚本工程中间是通过协议类进行数据交互,而定义的这个协议类和包发生之后按照上面的方案来说是需要云平台重新部署才可以的,在实践中发现脚本的能力建设和扩展等都需要通过协议类的修改才能实现,这就决定了这个协议类会频繁的发生变更,所以 Agent 工程中在动态编译前,手动校验了服务器上的协议类版本,如果发现了新版则下载新版的协议类 jar,在动态编译时替换到 -classpath 的协议类版本参数,这样就做到了指定协议类内容的动态更新和自动化部署。

    脚本设计

    在上面提到过 「对于 Java 来说可以将一些公共的方法抽象出来放到脚本的父对象中,通过继承将脚本编写能力赋予给脚本本身」,所以脚本设计分两个模块:

    协议父对象实现在这里插入图片描述
    如图所示父对象中提供了测试驱动 androidDriver、log 日志、checkPoint 检查点、img 截图等脚本能力

    用例子对象编写在这里插入图片描述
    如图所示,实际的脚本继承父对象的能力之后,可以完成编写相关页面测试逻辑、业务逻辑的自动化测试任务

    脚本调试和运行

    平台脚本调试可以通过如下两种方式进行:

    本地调试

    自行使用 main 方法、或者使用单元测试框架调试脚本通过在这里插入图片描述
    然后将主体修改为规定格式的自动化脚本,视情况修改 appiumDriver 引入方式、添加日志记录、截图、检查点等
    在这里插入图片描述
    远程调试

    远程调试需要在云测试平台上申请一台使用设备如图:在这里插入图片描述
    点击图中的按钮,将脚本粘入运行,如下图:
    在这里插入图片描述
    测试报告展示

    报告主要分为如下几个部分

    测试基本信息
    在这里插入图片描述
    主要展示测试过程的 app 基础信息和测试相关的一些信息展示,概况展示脚本所有检查点的通过比例,脚本运行的设备、通过、失败的数据统计,运行概况展示每一个脚本在每一个设备上运行的过程和结果,以脚本和设备为维度,log 链接中会展示详细的脚本运行步骤日志

    检查点概况在这里插入图片描述
    脚本运行的核心结果,主要展示此次自动化测试过程中所有的测试结果

    截图/步骤/异常在这里插入图片描述
    在脚本运行结束后,通过反射的方式获取到脚本用例的详细数据,通过 「截图/步骤/异常」细化展示每一次运行的步骤、图片、和检查结果

    性能图表、过程视频在这里插入图片描述
    在这里插入图片描述
    同时在脚本运行过程中也会通过 appium 框架功能实现设备的网络上下行统计,然后渲染性能数据生成图表并提供视频回放脚本执行过程。

    以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

    软件测试是IT相关行业中最容易入门的学科~不需要开发人员烧脑的逻辑思维、不需要运维人员24小时的随时待命,需要的是细心认真的态度和IT相关知识点广度的了解,每个测试人员从入行到成为专业大牛的成长路线可划分为:软件测试、自动化测试、测试开发工程师 3个阶段。

    这里有我整理的一些资料,如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加我们在这里插入图片描述

    展开全文
  • 如何搭建自动化测试框架?

    千次阅读 2021-07-23 05:51:37
    序今天先聊聊如何搭建自动化测试框架,主要会聊聊一些思路上的东西,从一个最简单的demo到把一个框架该有的组件都搭建好。本文主要以web自动化为例子,使用的语言是js。一、什么是自动化测试框架在了解什么是自动化...

    今天先聊聊如何搭建自动化测试框架,主要会聊聊一些思路上的东西,从一个最简单的demo到把一个框架该有的组件都搭建好。本文主要以web自动化为例子,使用的语言是js。

    一、什么是自动化测试框架

    在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面,而后者是从目的方面给出的定义。

    —百度百科

    对于自动化测试框架大致包含以下的内容

    自动化测试工具(selenium、puppeteer…)

    Runner(Jest…)

    日志(logger)

    报告(reportor)

    持续集成

    二、使用puppeteer开始写一个最小的demo

    2.1 工具选型

    目前,对于web端UI自动化比较主流的工具有selenium、webDriver。而在这里选择的是Puppeteer,先来了解下puppeteer。

    在chrome 59 chrome团队支持了headless模式,在Headless模式下,用于自动化测试和不需要可视化用户界面的服务器。例如,你想在一个网页上运行一些测试,从网页创建一个PDF,或者只是检查浏览器怎样递交URL。

    Puppeteer是谷歌官方出品的一个通过DevTools协议控制headless Chrome的Node库。可以通过Puppeteer的提供的api直接控制Chrome模拟大部分用户操作来进行UI Test或者作为爬虫访问页面来收集数据。

    Puppeteer 核心功能:

    利用网页生成PDF、图片

    爬取SPA应用,并生成预渲染内容(即“SSR” 服务端渲染)

    可以从网站抓取内容

    自动化表单提交、UI测试、键盘输入等

    帮你创建一个最新的自动化测试环境(chrome),可以直接在此运行测试用例

    捕获站点的时间线,以便追踪你的网站,帮助分析网站性能问题

    Puppeteer是使用node语言进行开发的,在使用中你可以使用async/await异步解决方案,async/await可能是目前为止最简单的异步方案了。

    很强大是不是,接着我们去学习下puppeteer的接口文档,接着开始写我们的demo。

    2.2 测试用例

    该用例是直接使用puppeteer,先launch一个browser然后newPage,接着开始写case。如果你想执行可以把then后的内容改成访问百度界面的。如下图,

    53470390529255b0c60cb4468dae1298.png

    7089ac7d63e97d767696370f3dd6368a.png

    我们来看下整体的框架,如下图,图中直接使用Puppeteer。

    对于以上的case,假如我要在写一条case,需要新建一个js文件,然后先launch一个browser然后newPage,接着开始写case。在这样的一个过程中我们可以看到我们每次都要launch browser,close browser,当然还有其他的问题比如怎么快速的执行多个用例等等,那么该如何解决这个问题呢?这时候考虑引入一个Runner的概念。

    三、使用Jest进行lifecycle管理

    3.1 了解Jest

    对于Jest,在并发执行可以保持最高的性能,在沙盒模式下每个测试都有一个干净的环境。Jest在做UT、AT有着很成功的应用。接着我们在框架里面加入lifecycle去管理一些资源。需要去做一些setup、teardown的工作。

    3.2 Jest+puppeteer

    在这里抽象了一个environment(下图左),去统一管理测试过程中的一些资源,在这里引入了setup、teardown,声明全局的browser、page变量。而对于case(下图右),使用Jest的case编写规则去写,首先是一个describe,类似test suite,在describe可以写多个it,一条的it代表一条的case,你就可以在一个文件里写多条的case。对比下二中的case此时我们不需要在每次执行launch了。

    6c2d7d2e32b1cfd06a5c25f93b6cb52e.png

    5b0844c7c535db4bb2f7d63b35820167.png

    接着看下整体的框架图,可以看到我们把jest给加入了

    对于上面的case我们把对页面元素的建模跟对应的操作以及测试方法都写到同个class里面了。对于这样的case,如果改动了某个元素需要改动很多个的文件,维护成本很高,这是我们不希望看到的。接下来我们引入了POM.

    四、POM

    4.1 了解POM

    POM的全称是Page Object Model。POM模型要求将一个页面上所有功能/可重用组件写到一个class文件中,它存在以下规则

    1.Page Object Model is a design pattern to create Object Repository for web UI elements.

    2.Under this model, for each web page in the application, there should be corresponding page class.

    3.This Page class will find the WebElements of that web page and also contains Page methods which perform operations on those WebElements.

    ce2f2712bbf26c6691c50a6ba32d9fbb.png

    对于三中的代码很明显没有遵循POM,接着我们进行改进。

    4.2 采用POM模型编写代码

    在这里我抽象出一个pages,把不同界面的建模以及对元素的操作放在一个文件夹下,在case层只有测试方法。

    3e610421b5233e6d741b5c4796efac22.png

    在使用POM的过程中我还做了一件事情,抽象出driver层,对puppeteer的API进行封装,封装的意义有两方面为了支撑其他的工具比如selenium,统一接口,更好的做兼容性测试,(puppeteer支持的browser类型比较少);另一方面,对于driver这类的工具在ui

    测试工程其实不会用到所有的大概能用上十几个method,我们可能对它进行封装让它更好用,比如可以在click前waitFor这个element出现,这样做就不需要在写case的时候每次click前都wait了。

    fd217ec645ed7a61031c337168fee641.png

    接着我们来看下整体的框架:

    ef2d0b2948a9ab8c94da4d29e2bbc95b.png

    对于这样的框架我们能很好的工作了,接下来需要加的是啥呢?

    五、Logger&Report&Assert

    loggger、report、assert是框架的必须部分。

    logger需要统一的管理打印到console或者某个file,logger可以帮助我们更快的定义问题对于logger可以分为两类一个应用本身的log,一个测试代码的log,根据需要收集;report是在测试结束后把结果展示出来,可以是dashboars可以是html,告诉case的整体情况,以及错误时候的信息,当然还可以是更详细信息,比如说每一步的步骤信息等;Assert这里是采用了Jest自带了,觉得Jset自带的expect已经很强大了,当然如果你需要用别的或者封装也是可以的。我们接着看下代码(如下图),对于这些我们去使用是很方便的集成的,易于集成也是衡量一个第三方library的一个重要指标。

    78c689a1fa9b0d6e24ff708c03cf8dcd.png

    f5d5bd0933ce0515d6bf4074e9cecfe5.png

    对于框架层加了两个模块进去。

    六、其他工具类

    54b91fb449d65793d82e0c2a58cc8f03.png

    对于框架而言,通常会留有一个Helper,把跟测试相关的工具放在这里。方便使用与管理。我们看下框架。

    七、持续集成

    首先,持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。自动化测试作为在持续集成中的一个重要环节,我们需要在执行UT/IT后接着执行AT,更早的发现bug。在这里可以使用docker搭建puppeter的运行环境,在jenkins上通过pipeline在docker中执行测试。

    八、总结

    以上就是本文的主要内容,希望看完这篇文章大家可以思考一些问题,对于这样的设计有何优化建议?在编写测试中可能会遇到哪些问题?我来说下,如何支持多个browser?测试太慢如何通过缓存提供web 元素的加载?面对这些该如何解决呢?

    最后的最后,该框架的源码在github上,https://github.com/summergan/EndToEnd

    目前只有文章中的demo,后续有时间会继续更新。

    版权声明:本文出自51Testing原创,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

    展开全文
  • IOS 自动化测试

    万次阅读 2020-03-25 16:48:49
    自动化测试节省时间节省真机的成本,而且更高效的覆盖所有的iOS机型测试,避免每次上线前重复的人工回归测试,保证每次上线的版本稳定运行
  • APP、Web自动化测试面试题

    千次阅读 2020-08-25 21:25:34
    Appium促进了一个2层架构,其中测试机连接到运行Appium的测试服务器并自动化整个事情。您可以在运行测试的同一台机器上运行Appium。 13、使用Appium可能遇到的错误是什么? 参考点: 错误1:需要以下所需的功能,但...
  • Python接口自动化测试

    千次阅读 2020-11-30 08:37:34
    本书主要介绍如何用Python实现接口自动化测试。全书主要内容包括接口基础、接口手工测试、编程前的准备、用Python处理MySQL数据库、用Python发送HTTP请求、用Python处理HTTP返回包、用Python导出测试数据、接口自动...
  • 快速实现质量是必要的,因此质量保证得到了很多关注。为了满足卓越的质量和更快的上市时间的...对于微型、小型和中型企业(SMEs)来说,自动化自身的测试过程是非常必要的,而最关键的方面是选择正确的自动化测试框架。
  • 自动化测试】自动化测试框架与工具

    万次阅读 多人点赞 2021-05-06 21:01:01
    1.2.1 优点:1.2.2 框架的基本组件1、需要配置文件管理:2、业务逻辑代码和测试脚本分离3、报告和日志文件输出4、自定义的库的封装5、管理、执行脚本方式6、第三方插件引入7、持续集成总结1.3 为什么需要自动化测试...
  • 游戏自动化该怎么做?这是一个值得探讨的问题。在中国,用手游自动化来描述,可能更为贴切。游戏自动化技术并不难以上手,有许多现成的工具提供使用。但是,要想做好游戏自动化,让其真正服务于游戏研发/运营期业务...
  • Java自动化测试(一)

    千次阅读 2021-03-03 10:36:32
    软件自动化测试范畴很广,理论我就不说了,只针对我这次选的题目——Java自定义组件的测试,从Java事件机制的基础说起,其中有一小部分关于开源软件测试框架Abbot的简单介绍还是先说说Abbot吧,Abbot可以支持Java ...
  • 接口自动化测试-接口封装思想

    千次阅读 2021-12-28 13:58:27
     接口封装--1、封装接口调动进行抽象封装  --2、类似PageObject效果  业务流程--1、数据初始  --2、业务用例设计,含多个api形成的流程定义,不要在包含任何接口实现细节  --3、断言 二、测试框架  ...
  • 具体来说,它提供了自动化测试用例编写、自动化测试用例执行自动化测试报告生成等基础功能。我们只需要基于这个框架,完成和业务高度相关的测试用例设计和实现即可。另外,框架会为我们处理好复杂度与扩展性的问题...
  • 5种比较常见的自动化测试框架

    千次阅读 2020-10-26 14:34:43
    自动化测试框架
  • 为了提高SoC设计的验证环节中,验证环境重用时的效率,提出了一种基于抽象层次的随机激励产生机制。通过将激励序列库在抽象层次上进行分层,使得在验证环境重用时,保持高抽象层不变,修改转换层,底层序列将会...
  • 软件研究的终极目的是解决社会/自然问题,将社会/自然问题用符号表达,基于符号进行计算,将计算...符号化-计算化-自动化是最基本的抽象自动化机制,是软件工程学科的基本思维模式,是软件工程学科能力培养的第一步。
  • Mendix公司以抽象化、自动化、云和协作为四大支柱,大幅提升开发者的生产力,并且依靠自己的工程协作能力和直观的可视化界面,帮助大量不熟悉技术的“公民”开发者在他们所擅长的领域创建应用程序。Mendix公司是权威...
  • Electron提供了相当不错的API来进行自动化,但是对于诸如自动化测试之类的应用,它们并不是特别方便。 像之类的东西可以在Electron之上提供抽象,而这在很大程度上是受这些启发的。 为什么不只使用Nightmare.js? ...
  • 自动化测试全流程总结

    千次阅读 2021-10-08 19:10:11
    一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。 定义 人为驱动测试为转为机器执行过程 应用 软件测试的自动化 工具 QTP 目录 1...
  • 自动化测试用例设计

    千次阅读 2019-09-16 11:33:44
    自动化测试用例的编写是实现项目自动化的核心,合理的用例设计是保证自动化效益和实用性的关键,也直接决定了自动化脚本是否具备可扩展和可维护性。由此,本篇文章主要为大家介绍了测试用例编写的规范和注意事项。 ...
  • 自动化测试的基本原则

    千次阅读 2018-08-13 15:03:26
    自动化功能测试的优点之一是可重复性和可预测的执行时间。出于这个原因,它应该作为软件质量的每一个构建之后的指标。功能测试自动化往往会成为一个瓶颈,所以你应该熟悉一下如何创建这样的测试的基本原则。    ...
  • 一、了解什么是DevOps DevOps的目标是实现软件系统的快速交付、并且提升系统稳定性和获得用户良好的反馈。...包含:基础设施即代码、CI/CD、自动化测试、容器化、服务编排、自动化部署和软件度量等。 CI/CD流水线是决
  • 3分钟教你搭建自动化测试框架

    万次阅读 多人点赞 2018-12-24 14:35:06
    Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个...
  • 几种典型的软件自动化测试框架

    千次阅读 2020-09-22 15:30:24
    这些数据表和关键字独立于执行它们的测试自动化工具,并可以用来“驱动"待测应用程序和数据的测试脚本代码,关键宇驱动测试看上去与手工测试用例很类似。在一个关键字驱动测试中,把待测应用程序的功能和每个测试的...
  • Baufest技术测试的自动化测试 代码和执行指南 储存测试 src / test / java / Runners / Runner.java是Cucumber用于执行功能的入口点。 src / test / resources / features / WebPage.feature包含Cucumber通过Runner....
  • UI自动化测试,看看这篇文章再动手

    千次阅读 2017-07-11 11:25:18
    UI自动化测试作为测试人员的基本技能,拥有ROI(投入产出比)低、维护成本高、稳定性差等等特点。面对这些难题,本文以尝试寻找解决方案,希望对大家有用。  本文首先列举UI自动化过程中普遍会遇到的问题,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 432,004
精华内容 172,801
关键字:

抽象的自动化执行