问题陈述:在测试自动化领域已经有一段时间了,我总是遇到这样的困惑:如何设计一个集成测试策略,以便在大多数最新应用程序支持的所有3个UI层上运行自动化脚本
详细信息
任何现代应用程序都支持上述所有平台,它们都是用于测试每个平台的不同工具。
但是,我们如何设计一个有效的测试自动化框架,它将涉及在一个地方编写功能测试用例流-语言不可知论,并使它在任何我们想要执行的平台上工作?
我已经总结了我的工作到目前为止的答案如下。请随意提出任何想法!!
发布于 2017-02-19 09:54:50
按照我的分析,实现这一目标的最佳方法是使用Cucumber以BDD风格编写与语言无关的案例,并在测试需要运行的平台上有单独的实现。
我在下面总结了完整的体系结构,我把它命名为“灵丹妙药框架”:)我在博客中写了低级别的这里的细节

发布于 2017-02-24 17:52:03
如上所述,您可以使用黄瓜编写测试--它有用于Ruby、JavaScript和许多其他语言风格的版本。Cucumber/BDD方法确实为Cucumber场景提供了高级语言独立性,但您仍然必须用所选择的语言编写步骤定义。
Cucumber框架可以针对任何应用程序运行测试:移动应用程序、移动web或桌面应用程序,而不管这些应用程序是用哪种语言编写的(我们使用ruby/黄瓜和各种插件对这三个应用程序进行测试)。
Cucumber的支持元素需要对任何广泛的框架(env、钩子等)进行一些定制。这样你就可以得到好的报告,让测试变得尽可能简单,但是基础已经存在了。
您需要支持在低级别上实际驱动测试(例如,使单击、滑动等工作):如果您愿意的话,这将是硒网驱动程序或瓦蒂尔。很可能还有其他办法。Selenium有特定于语言的插件,所以对于ruby,只需添加硒网驱动宝石即可。
所有的测试都可以在本地运行(我已经实现了一系列shell脚本/函数来简化测试)。然后,您可以使用詹金斯定期运行基本验收测试,也可以自动化CI管道。
此外,您还可以使用Appium和朋友在苹果和安卓系统中使用模拟器或实际设备实现测试自动化。
它都是开源的,它很好(如果你喜欢的话),它符合你的标准。最重要的是,它现在就可以使用了(而且对我们也适用)。
发布于 2017-02-25 08:05:10
设计一个集成测试策略,以便在所有3个UI中运行自动化脚本
BDD与您的测试代码实现不应该是1比1,否则,业务团队将不会获得所有权。相反,使用spec/test属性链接一个标识符,以便将测试与BDD定义相匹配。
您需要页面对象和它们在实际应用程序中的组成一样。这允许开发人员创建派生测试(阳性/阴性)测试,而不仅仅是有一袋帮助。示例:视图包含一个或多个组件,因此,功能规范可能如下所示:
网络桌面:
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
https://stackoverflow.com/questions/42325818
复制相似问题