我正在尝试使用pytest和Python 3.7自动化基于REST的应用程序。
该应用程序支持3个不同的用户角色(manager
,admin
,consumer
),每个用户都有访问数据的限制。
每个用户角色都有不同的用户名和API密钥。
例如,想象一下应用程序有data1
,data2
,data3
,data4
和data5
。
manager
角色用户及其API密钥调用API,您将可以访问从data1
到data5
的所有数据。admin
角色用户及其API密钥调用API,您将只能访问data3
和data4
。consumer
角色用户及其API密钥调用API,您将只能访问data2
。应用程序很复杂,但我正在尝试简化应用程序功能。
使用所有这3种不同的用户角色验证REST API的最佳方法是什么,或者使用某些库的任何建议。
如何按角色分解测试:
assert has_access(consumer, data2) is True
assert has_access(consumer, [data1, data3, data4, data5]) is False
随着应用程序变得更加复杂,下一步可能是从基于角色的权限切换到基于操作的权限,即您可以创建data2
权限并仅向消费者授予read
权限,而不是让消费者完全访问data2
。