Tag: 测试自动化

XCTest快速执行用户界面测试

哦! blz ?? Uma perguntinha marota: Quanto tempo demora aexecuçãodos seus testes de UI? 通用演示文稿(例如,依赖于seu projeto,de Quantoscenáriosvocêtem等)。 厄瓜多尔的尼古拉·尼斯·康塞西和佩斯萨尔·阿尔萨斯·马尼拉·德·法泽尔等人在国际音乐节上发表了一些演讲。 Então,尤里卡!!! Desco ri quepossívelexecuta-los em paralelo,ou seja,rodar os testes emváriossimuladores ao mesmo tempo !! =) Irei dividir esse artigo em duas partes好吗? 第1部分-Rodar o mesmo teste emváriossimuladores (重要的有效布局) 第2部分-模仿偶像 QA,jáouviu falar做快车道吗? “ fastlaneéuma plataforma decódigoaberto destinada是简化的Android e […]

电子商务行业中移动应用的未来趋势越来越大

生活在技术时代迫使企业家适应当前的市场和技术趋势。 移动就是推动企业发展的另一种推动力。 电子商务行业是如此之大,以至于需要一个适当的渠道或平台来扩大受众范围。 Android和iPhone都已成为全球人们广泛使用的平台。 如今,电子商务行业的消费者可以在多种环境中使用他们的移动设备,例如-随时随地进行购买,在商店购物时浏览并获取有关产品的详细信息。 移动应用程序充当连接零售商和客户之间所有渠道和接触点的桥梁,他们共同利用它们来获得出色的无缝购物体验。 让我们看一下趋势,这些趋势往往会为电子商务行业中的移动应用程序设定未来。 越来越多的移动购物者涌入 就像智能手机的使用和销售额继续上升一样,移动购物也有望增长。 移动设备目前占美国所有电子商务销售额的19%; 但是,根据Invesp的报告,这一数字预计到2018年底将上升到27%。 但是,移动购物者的涌入也给商家带来了新的挑战。 尽管台式机驱动的电子商务销售可能处于平稳状态,但是Comscore的数据显示,在线销售总体上正在蓬勃发展。 移动设备的销售现在以59%的年增长率超过台式机的17%领先。 更多流行的店面应用程序 为了应对上述吸引移动买家的挑战,希望看到一波新的移动“店面应用”浪潮能够随时随地吸引买家。 这种趋势也与商人拥有全渠道服务的需求紧密相关。 鉴于移动用户将其86%的时间都花在了与移动网站上的应用程序中,也许品牌的本机智能手机购物应用程序是转换那些曾经风行的客户的关键。 毕竟,如果客户愿意努力下载移动应用程序,那么他们很可能会忠诚并且足够信任,可以继续进行购买。 “应用程序商务”平台Poq最近发现,店面应用程序的性能比移动Web转换率高40%,比桌面Web浏览器还支持更长的浏览会话,并且吸引重复访问的可能性是后者的两倍。 考虑到店面应用程序提供的改变游戏规则的功能,这一切都是有道理的,这些功能包括出色的内容个性化机会,推送通知以及地理位置综合实体店购物推荐。 Poq的引人注目的解决方案之一是,它提供了一个集中的内容管理系统,商户和营销人员可以将其用作统一的数据中心,该中心使用API​​自动与分析平台,支付网关,客户评论平台等进行同步。 印度市场应用程序的普及 支付技术公司Worldpay发布的一份报告显示,目前在印度接受调查的买家中,超过80%的人更喜欢使用应用而非移动浏览器在手机上购物,而全球平均水平约为70%。 报告补充说,印度每天平均下载10个移动应用程序,已远远超过其竞争对手美国和英国,这是一个蓬勃发展的市场,其平均下载量为7。 去年,印度人下载了121亿个应用程序,使美国的应用程序经济(113亿美元)黯然失色。 获得正确的应用程序体验可以为电子零售商带来丰厚的回报。 毕竟,根据Worldpay的报告,三分之一的印度人在上次购物时花费了超过4,000卢比(62美元)。 开拓正确的市场将是他们成功获得电子零售商的关键。 结论 没有人能真正预测电子商务的未来。 但是,这些当前趋势将暂时继续严重影响空间。 不断发展的电子商务行业不可避免的一件事是,他们应保持最优质的应用程序并尽快上市。 最好的策略是在具有不同操作系统版本的多个真实设备上以及在基于云的平台上的不同参数上测试应用程序,从而可以更快地交付质量更好的应用程序。 pCloudy是理想的完整生命周期数字测试云平台,可测试所有移动和物联网应用。 手动,自动和人群测试都可以在iOS和Android设备上进行。 这些测试可以根据需要在公共云,本地或专用私有云上运行。 Selenium和Appium测试都可以在pCloudy上运行。 它的最大优点之一是可以与持续集成系统集成。 在pCloudy上注册并测试您的应用,以使我们相信我们所说的。 移动应用测试,移动应用测试,Android应用测试,iOS应用测试,自动化测试,应用测试,移动设备实验室,测试一个应用

XCUITests课程入门复习

我已经在http://testautomationu.applitools.com/上学习了一段时间,当出现了来自Shashikant的有关iOS XCUITests的新课程时,我全力以赴并完成了工作,并获得了第一份证书! 我从事XCUItests已经有好几年了,而错误的想法课程将是多余的,但是男孩我已经学到了很多东西,可以直接帮助我工作。 页面对象的枚举是个绝招,很想看看如何将其扩展到多个屏幕和对象。 XCTContext是一个很好的小技巧,可以提供清晰的报告并分组测试块 Eyes SDK非常简单,可以在几分钟内添加视觉检查,并与组织良好的项目很好地集成。 Travis CI甚至没有Mac版本的付费墙! xcodebuild -list是简洁易用的命令,它总结了所有方案,并在您的项目中构建。 可以删除该测试,而不是删除或最差劲地评论一个不稳定的测试(我认为它会添加到-skip-testing选项中) 我不喜欢的一些东西: 在入门课程中使用BDD样式似乎不合适,特别是因为稍后引入了屏幕对象。 尽管某些项目/团队可能喜欢BDD,但这并不是所有自动化项目的事实。 有一个测验问题答案错误,这影响了我的学分 我们可以从xcodebuild或fastlane中运行BDD或任何其他xcuitest,如本课程后面所述。

在API级别应包括测试自动化的3个原因

质量保证和测试变得无懈可击,尤其是在API测试的情况下。 开发团队可以从API级别的自动化集成测试中受益,因为它可以帮助他们轻松集成应用程序并提高产品采用率,最终帮助公司提高利润。 在开发和执行自动化测试时,经常会忽略API层,并且大多数情况下会执行端到端用户界面驱动的测试,以检查集成后最终应用程序是否正常运行。 API层不容忽视,为了使质量保证策略成功,它应该将API测试视为整体测试策略的基本组成部分。 让我们了解一下API测试的含义: 应用程序编程接口(API)是一组程序,它们允许两个或多个软件相互通信并能够顺利交换数据。 在测试领域,测试API与其他类型的测试不同。 UI和功能测试通常被重视,而API测试则被忽略。 测试人员的首要责任是通过验证应用程序,系统,数据库和网络之间的交换和通信,确保执行API测试,以实现不同数据驱动的应用程序和系统的无缝功能,性能和可靠性。 自集成测试诞生以来,它一直是测试自动化金字塔的组成部分,但它也是功能测试自动化中受破坏最大的一层。 通常,所有超出单个单元范围并且不能被单元测试覆盖的测试都是通过用户界面驱动的端到端测试场景执行的。 但是,虽然端到端测试可以看作是最终的集成测试,但是所有组件都组合在一起,但是太多的组件会导致测试套件的执行时间不必要,而且难以维护和保持稳定。 通常可以通过API测试应用程序的技术和业务逻辑的重要部分。 为了更深入地了解API测试的重要性 ,让我们了解自动API测试的以下好处: 比单元测试的范围更广: 单元测试通常在单个应用程序层中的一小部分组件上运行。 在一个应用程序层结束而下一个应用程序层开始的分布式应用程序中,通常不会检测到问题。 为了验证组件是否按期望进行通信,设计了API级别测试。 因此,在集成级别尤其是在与外部组件集成时,非常需要强大的API测试策略。 管理测试环境是执行一项关键任务,尤其是当组件位于不同团队中时。 与端到端测试相比,具有更高的稳定性和速度: 诚然,端到端测试的范围比API测试更大。 它们涵盖了应用程序的所有层和组件,但是API测试弥补了它的稳定性和速度上的损失。 API测试肯定比以前更快。 端到端测试需要更长的时间来加载浏览器和屏幕,而API测试则基于单独的请求-响应交互(例如JSON或XML格式),这使得执行速度更快,反馈周期更短。 而且,由于各种用户更改请求,用户界面趋于频繁更改,并且就产生更少错误和需要更少维护的界面而言,对高级前端框架API的遵循趋于更加稳定。 更加认真地引入API级别测试-自动化测试中的重要决定 API级别的集成测试应该是任何自动化测试议程中必不可少的方面。 对于那些在此领域没有专门知识的人来说,这可能是一个令人不安的举动。 由于它可以超出组件或应用程序的范围,因此与开发人员相比,它更多地是测试人员所需要的。 没有用户界面可能会阻止访问和测试API。 但是您可以选择市场上提供的各种自动API测试工具。 最喜欢使用RestAssured,SoapUI和Postman之类的工具。 结论 在人工智能和物联网时代,对API测试的需求变得日益迫切。 自动化的API测试策略是最有效的策略,可加快交付速度并减少人为错误。 借助这些工具,可以满足更多API测试要求,并使API测试在更短的时间内对移动应用程序的安全和高质量部署更加有利。 您为什么不使用pCloudy的API集成自动化框架,并使您的应用发布更快? 立即免费试用pCloudy 。 移动应用测试,移动应用测试,Android应用测试,iOS应用测试,移动响应测试,移动测试,自动化测试,移动设备实验室,移动测试实验室,XCUITest,移动应用测试平台,移动应用测试工具

移动自动化测试

通过查看上图可以最好地理解我们的系统。 蓝色突出显示的部分显示了测试的运行位置。 开发人员检入经过本地测试的代码更改,这些更改将由同级审查并提交给master分支。 该分支建立在Jenkins服务器上,并且在此阶段再次运行整套UI测试。 通过QA评估成功的构建,并在测试失败时报告新的错误。 为了防止一次实施UI测试并在启动失败后将其忘记,我们需要对自动化UI测试采用相同的CI / CD方法。 这意味着我们所有的测试代码都与我们的应用程序在同一个项目中,因此是持续集成管道的一部分。 当有新功能添加到应用程序时,新的UI测试可以同时添加到测试中。 当UI测试失败时,可以修复该错误并将其集成到主分支中,然后我们可以确保测试通过。 因此,上面显示的流程与用于正常代码更改(用于功能,错误修复等)以及添加和修复测试代码的流程相同。 将项目代码和测试代码都放在同一个CI系统中,可以提供高效的反馈系统,从而可以尽早发现错误并可靠地验证构建。 iOS测试框架 对于UI测试,我们使用Earlgrey 2.0。 Earlgrey是Google开发的一种测试框架,用于测试iOS的Google应用程序,并与XCTest(Apple的官方测试框架)集成在一起,该框架集成在XCode中。 在单独使用Earlgrey和XCTest进行了编写测试之后,我们决定使用Earlgrey。 做出此选择的主要原因是Earlgrey由于内置的​​功能而更加稳定,例如,在与元素进行交互之前等待视图完全加载,以及检查元素是否真正可见,而不仅仅是在UI堆栈中。 页面对象模型设计模式 对于我们的UI测试,我们决定遵循Page Object Model设计模式。 这种模式将用于识别UI元素的类与测试类分开。 每个“页面”或用户看到的屏幕都有自己的页面对象。 每个页面对象都有一些通用方法,例如verifyUIElements() ,只需调用这些方法即可验证屏幕上应该显示的所有元素是否可见。 它还具有代表用户操作的方法,例如tapDone()或inputEmail() 。 然后,测试类可以调用这些方法以进行测试流程,例如导航到登录页面,验证元素,输入电子邮件地址,然后点击“登录”。这种方法减少了指定UI元素的代码重复。 此外,如果UI元素得到更新,则更新测试是对页面对象的单行更改,并且测试类不受影响。 这种分离也意味着测试类更具可读性。 请参阅以下示例在登录页面上进行UI测试。 上面是要测试的登录屏幕。 首先,我们制作了表示屏幕上UI元素的屏幕对象以及与这些元素进行交互的方法。 然后,我们编写了使用屏幕来测试登录流程的测试用例。 第一个测试用例是他们是否点击了“忘记密码”按钮,第二个是当他们输入有效的密码时。 测试套件 我们将测试套件分为健全性测试,冒烟测试和回归测试。 健全性测试将检查最少数量的功能,以确保构建实际上正在构建并正在运行。 如果这些测试失败,那么我们将陷入大麻烦。 冒烟测试检查了我们应用程序的更多基本功能,而回归测试则覆盖了我们应用程序的更多粒度和较少使用的功能。 进行健康与烟雾测试大约需要7分钟。 因此,我们希望开发人员在本地运行这两个套件,以确保在着陆更改之前,该构建适用于基本功能。 如果冒烟或健全性测试套件中的任何测试失败,则开发人员应在构建进行质量检查之前对它们进行检查,因为这可能表明存在重大问题。 由于回归测试套件大约需要30分钟,因此我们的Jenkins服务器每晚都会运行这些测试,并在第二天检查结果。 回归测试结果也很重要,但并不像健全测试和冒烟测试那样重要,因为每次测试都必须通过,因为对粒状细节的测试会变得更加脆弱。 模块化测试设计 我们努力设计测试,以使每个测试都尽可能模块化。 这意味着一个测试失败不会导致其他测试失败。 为了确保这一点,每个测试方案都以登录开始,并以注销结束。 一个测试场景可能是“以15%的小费收取Discover信用卡付款”,另一种情况是“以15%的小费收取MasterCard付款”。即使Discover测试失败,我们也会使用XCTest的teardown()函数返回屏幕上带有注销按钮,然后在开始下一个测试之前注销。 模块化在编写测试时为我们提供了帮助,因为您可以单独运行测试,并且调试速度更快。 查看测试结果时,这种模块化也有助于查明问题。 当测试失败时,测试框架将截屏显示失败的时间,失败之前的堆栈跟踪以及屏幕的整个UI层次结构。 […]

Swift的行为驱动开发框架

XCBlog上的原始帖子在这里 最近,有多家公司在寻找使用Swift编写的iOS应用程序的BDD支持工具。 由于Cucumber没有对Swift的官方支持,因此大多数人都在努力为Swift项目寻找合适的BDD工具。 这篇文章将重点介绍一些在Swift应用程序中支持BDD的工具。 BDD aka行为驱动开发是通过使用Gherkin或类似格式的可执行规范来开发应用程序的过程,以便程序员可以将这些规范用于开发,而业务人员可以将其用于需求规范或实时文档。 BDD是一种由内而外的开发方法。 您可以在此处阅读有关BDD的更多信息。 由于缺少适当的BDD工具(如Swift中的Cucumber),iOS世界中的行为驱动开发始终面临挑战。 在网站开发中,BDD选项有特定于语言的选项。 有一些解析Gherkin语言语法的工具(Given / When / Then),我们可以执行BDD场景,例如Ruby的Cucumber,JavaScript的CucumberJS,Java的Cucumber-JVM,C#的SpecFlow,PHP的Behat等。适用于Spec级BDD的工具,例如Ruby的RSpec,PHP的PHPSpec,JavaScript的Jasmine。 但是,在iOS世界中,执行BDD的选项非常有限,尤其是对于Swift。 在本文中,我们将探讨Swift iOS应用程序当前使用的BDD选项。 使用诸如带Appiumor Calabash的Cucumber之类的工具可以轻松实现Gherkin Style BDD,但要在Xcode中支持BDD并非易事。 由于缺少适当的BDD工具(例如Swift中的Cucumber),iOS世界中的BDD始终具有挑战性。 Swift中没有可用的Gherkin解析器,因此Cucumber社区建议使用Objective-C Gherkin解析器。 这里提到了许多BDD工具来编写较低级别的测试,但是为了编写UI级别的测试,很少有选项可能没有Ruby中Cucumber的所有核心功能。 XCTest-Gherkin是另一个可用于在Xcode项目中实现BDD的工具。 在README文件上有关于其功能和限制的详细信息。 它纯净的表示形式,我们仍然可以使用String格式编写GWT(当时提供),但是主要缺点是我们无法编写或执行.feature文件,并且缺少许多核心的黄瓜功能,例如标签,过滤功能。 您需要使用CocoaPods或Carthage将XCTest-Gherkin作为UI测试目标的依赖项。 XCFit是另一个纯Swift实现,用于在Xcode项目中支持BDD。 它还提供了Xcode模板,以开始使用BDD,页面对象模式和面向协议的模式。 XCFit在Swift框架中有一些预定义的步骤,但是快速好处来自Xcode模板。 有关面向协议的BDD的更多信息,请参见此处。 另一个主要缺点是我们无法编写或执行.feature文件,并且缺少许多核心的黄瓜功能,例如标签,过滤功能。 Cucumberish是一个测试框架,可用于以Gherkin格式编写功能,并可从Xcode执行。 Cucumberish被编写为Objective-C,并使用来自Cucumber存储库的Objective-C Gherkin解析器。 能够从Xcode执行Gherkin功能文件非常好,但是Cucumberish有一些错误,在大多数情况下需要解决方法。 在完全Swift项目中引入Objective-C依赖关系也有些棘手。 可以使用CocoaPods或Carthage将黄瓜导入UI测试目标。 Plowman是Gherkin语言的另一种测试运行器,我们可以从命令行编写和执行功能文件。 在Ploughman的README文件中有很好的信息。 这缺少核心Cucumber的许多功能,例如示例,标签和过滤器。 可以使用Swift Package Manager导入此软件包。 SwiftGherkin是另一个Swift软件包,用于处理基于gherkin.feature的文件。 这是一个新创建的程序包,它支持功能,方案,方案大纲和步骤,但是将来还会支持所有其他核心黄瓜功能。 您可以继续关注该存储库,以获取有关此软件包的更多新闻。 该软件包只能与Swift Package Manager一起使用。 与用于Ruby的RSpec,用于PHP的PHPSpec,用于JavaScript的Jasmine相似,很少有工具可以为较低级别的实现编写规范。 我们将在Swift中看到那些规范级别的BDD选项。 […]