我们有一个用C#编写的Rest API,我需要研究一种自动化测试的好方法。有两种方法可以自动执行API测试:


GUI工具(例如SoapUI)
使用一些测试框架的编程方法

有什么缺点和每种方法的优点?对于程序化方法来说,以与代码相同的语言编写测试很重要,或者可以以脚本语言编写测试,例如Python吗?

评论

@FDM如果编写自己的框架,为什么不尝试使用Visual Studio Web测试呢?

我还没有听说过Visual Studio Web测试,它是如何工作的?

#1 楼

今年年初,我用C#编写的API进行了完全相同的分配。我已经(试图)为其构建PoC的选项包括:
与测试负责人和体系结构团队达成协议,出于以下原因,我们决定使用自己的C#API测试框架:



易于数据设置:可以将测试项目添加到API解决方案中,从而(在我们的示例中)使用相同的Entity Framework模型来准备和/或检查数据。

TFS或Git中的版本控制,也用于测试数据。

易于集成到构建管道中,因此这些测试在每次部署后都可以运行。
可以更好地控制测试的技术实施。

#2 楼

在类似的情况下,我们继续编写自己的轻量级框架。
原因是:


我们并没有使用Soap UI的许多功能,因此,仅拨打电话就可以了,Soap UI是一个过大的选择
付费版本满足我们的需求是昂贵的;扩展免费版本所需的Groovy技能-Groovy不是我们团队熟悉的语言。
Soap UI项目无法与GitHub很好地集成。项目文件的XML性质总是造成合并冲突,我们无法确定发生了什么变化。

我们最终在NodeJS中编写了一个非常轻量的框架,并将数据保存在JSON文件中。如果您的团队对SmartBear套件投入了大量资金,那么使用Soap UI /套件中的工具是很有意义的。

#3 楼

我们正在使用Postman。

原因:这迫使我们专注于测试和测试用例,而不是花时间(浪费!?)来创建,调试和调整我们自己的测试框架。

它对我们有用,因为我们的API和测试用例非常典型,因此Postman的功能可以很好地覆盖它。

评论


您使测试自动化了吗?您是否可以自动验证状态码,响应正文中的值,将参数从一项测试传递到另一项?

– Arthur M.
17年9月17日在15:44

我们只是运行了一系列测试,没有传递参数,等等。也许Postman可以做到这一点,但是我不确定。

– timfredo
17-09-18在10:06