介绍
自动化测试已经成为主流,并且已经成为软件开发过程中必不可少的一部分。DNN公司也是如此。我们一直是自动化的早期采用者,并且利用它已经有一段时间了。我们很高兴地宣布我们的内部UI自动化测试框架的开源。让我们从了解自动化的基础知识开始。
自动化类型
纯粹主义者可能不同意,但通常以下是自动化测试的类型:
单元测试-这是最基本的测试类型,其中方法中的代码是单独测试的-因此有了“单元”这个词-一次测试一个组件。这要求该方法进行的外部调用是可mock的。不幸的是,DNN平台在编写时并没有考虑到这一点,因此没有多少可以进行单元测试,这就是为什么我们创建了另外两个框架——集成和UI自动化。然而,在DNN平台中仍然有几个类和方法是完全可单元测试的。在另一篇博客中有更多相关内容。
我们还想提一下,单元测试既可以在c#上执行,也可以在JavaScript代码上执行。我们的单元测试只针对c#,但我们希望在基于ReactJS的前端添加单元测试。
集成测试-这具有更大的测试范围,可以通过软件的各个层进行测试- web API,业务层,数据库层等。我们也会有专门的博客来讨论这个话题。
UI自动化测试-这是最广泛的自动化测试框架,其中UI交互(点击,填充文本框等)是自动测试的。Selenium框架被广泛用于此目的,这也是我们的框架所基于的。
引入f#
我们决定使用f# (FSharp) . net语言编写UI自动化测试框架,因为QA工程师编写测试非常容易。f#是一种函数式语言,不需要太多的结构。另外,f#是一种成熟的。net语言,允许访问整个。net框架。
习惯用c#编写代码的开发人员可能会发现理解f#很有挑战性,尽管它是一门很好的新语言。在不久的将来,我们将在单独的博客中就此发表文章。
树冠
我们正在使用树冠帮助构建更简单的测试。这是他们在他们的web canopy是一个web测试框架,其目标只有一个,简化UI测试;
- 固体稳定层建立在硒之上。
- 死于“脆弱、古怪的UI测试”。
- 快速学习。
- 即使你从来没有做过UI自动化,也不知道f#。
- 干净、简洁的API。
- 麻省理工学院的许可。
存储库

存储库方便地托管在DNN上Github
解决方案文件

打开FSharpFramework。Visual Studio (VS)中的sln。如果你还没有安装f#, VS可能会提示你安装f#。确保你以管理员权限打开VS,否则你可能会在运行时出现错误。
编译

没什么特别的,只要执行Build > Build Configuration即可。
警告
这绝对不能在生产站点上运行,因为它对站点进行了更改,应该只在测试站点上运行。
配置文件

该框架使用文件配置。Yaml作为配置。首先简单地更新SiteAlias指向您的本地站点。也可以指定SuperUser名和密码,否则已经指定了默认用户名和密码。
运行基本验证测试(BVT)


按F5运行。缺省情况下,配置文件为。yaml文件被配置为运行BVT。您当然可以进行更多的测试。我们将在以后的博客中对此进行讨论。BVT由大约25个测试组成,通常可以在30分钟内完成。
款版本
该框架与DNN的特定版本绑定在一起。在撰写本文时,它与即将发布的DNN 9.2.0捆绑在一起,您可以从我们的每夜构建.
