首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何建立一个统一的测试框架,在所有表示层上运行测试- Web、Mobile和桌面应用程序

如何建立一个统一的测试框架,在所有表示层上运行测试- Web、Mobile和桌面应用程序
EN

Stack Overflow用户
提问于 2017-02-19 09:54:50
回答 4查看 866关注 0票数 1

问题陈述:在测试自动化领域已经有一段时间了,我总是遇到这样的困惑:如何设计一个集成测试策略,以便在大多数最新应用程序支持的所有3个UI层上运行自动化脚本

  • 移动应用-混合应用
  • Wed应用程序-通过浏览器访问
  • 桌面应用程序

详细信息

任何现代应用程序都支持上述所有平台,它们都是用于测试每个平台的不同工具。

  • 桌面- QTP,AutoIt库.
  • 硒和硒的扩展,如量角器等,QTP .
  • 移动应用程序- Appium等等。

但是,我们如何设计一个有效的测试自动化框架,它将涉及在一个地方编写功能测试用例流-语言不可知论,并使它在任何我们想要执行的平台上工作?

我已经总结了我的工作到目前为止的答案如下。请随意提出任何想法!!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-02-19 09:54:50

按照我的分析,实现这一目标的最佳方法是使用Cucumber以BDD风格编写与语言无关的案例,并在测试需要运行的平台上有单独的实现。

我在下面总结了完整的体系结构,我把它命名为“灵丹妙药框架”:)我在博客中写了低级别的这里的细节

票数 3
EN

Stack Overflow用户

发布于 2017-02-24 17:52:03

如上所述,您可以使用黄瓜编写测试--它有用于Ruby、JavaScript和许多其他语言风格的版本。Cucumber/BDD方法确实为Cucumber场景提供了高级语言独立性,但您仍然必须用所选择的语言编写步骤定义。

Cucumber框架可以针对任何应用程序运行测试:移动应用程序、移动web或桌面应用程序,而不管这些应用程序是用哪种语言编写的(我们使用ruby/黄瓜和各种插件对这三个应用程序进行测试)。

Cucumber的支持元素需要对任何广泛的框架(env、钩子等)进行一些定制。这样你就可以得到好的报告,让测试变得尽可能简单,但是基础已经存在了。

您需要支持在低级别上实际驱动测试(例如,使单击、滑动等工作):如果您愿意的话,这将是硒网驱动程序瓦蒂尔。很可能还有其他办法。Selenium有特定于语言的插件,所以对于ruby,只需添加硒网驱动宝石即可。

所有的测试都可以在本地运行(我已经实现了一系列shell脚本/函数来简化测试)。然后,您可以使用詹金斯定期运行基本验收测试,也可以自动化CI管道。

此外,您还可以使用Appium和朋友在苹果和安卓系统中使用模拟器或实际设备实现测试自动化。

它都是开源的,它很好(如果你喜欢的话),它符合你的标准。最重要的是,它现在就可以使用了(而且对我们也适用)。

票数 1
EN

Stack Overflow用户

发布于 2017-02-25 08:05:10

设计一个集成测试策略,以便在所有3个UI中运行自动化脚本

BDD与您的测试代码实现不应该是1比1,否则,业务团队将不会获得所有权。相反,使用spec/test属性链接一个标识符,以便将测试与BDD定义相匹配。

您需要页面对象和它们在实际应用程序中的组成一样。这允许开发人员创建派生测试(阳性/阴性)测试,而不仅仅是有一袋帮助。示例:视图包含一个或多个组件,因此,功能规范可能如下所示:

网络桌面:

代码语言:javascript
复制
it('', () => {
  // protractor sample:
  const view = new View();
  const sidebar = await view.newRecord();
  const apiresult = sidebar.save({neverset: true});

  apiresult.then((data) => fail('expected bad request not a 200 from api.'), () => {});
}

混合(媒体查询):

如果您正在构建一个混合应用程序,请为chromeOptions { args: ['--window-size=1920x1080'] }定义多个信任项,这样您就可以测试您的各种媒体查询库存大小。

本机+桌面:

我会把我的赌注在webdriver,https://www.w3.org/TR/webdriver/#privacy,是你正在寻找的神奇酱汁。Chrome浏览器或某些移动模拟器将将协议解释为移动模拟器内的操作。查看电子如何使用webdriver测试桌面应用程序:http://electron.atom.io/docs/tutorial/using-selenium-and-webdriver/#setting-up-with-webdriverjs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42325818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档