【问题标题】:How to provide a sensitive data to nose如何向鼻子提供敏感数据
【发布时间】:2016-05-11 20:59:00
【问题描述】:

我正在使用nose 来测试一个需要用户名和密码的Python 类。向测试模块提供该用户名和密码对的最佳实践是什么?我希望测试过程对另一位工程师来说是直观的,并且我不能以明文形式存储任何敏感信息。有什么想法吗?

【问题讨论】:

  • 答案是——视情况而定。您能描述一下您的测试内容吗?
  • 该类需要使用用户名和密码进行初始化才能访问 Web 上的 API。

标签: python unit-testing testing nose


【解决方案1】:

最常见的选项是在环境变量中提供数据。

import os

password = os.environ['PASSWORD']
username = os.environ['USERNAME']

$ USERNAME=user PASSWORD=qwerty nose

注意:环境变量可以被 root 和进程所有者读取。通过命令行提供的变量与命令一起出现在 shell 历史记录中。

手动测试

  • 鼓励(强制)开发人员获取自己的凭据,
  • 加密凭证;除其他外,我会看看git-secret。可以使用 Tox 来稍微自动化一下。

自动化测试

大多数 CI 系统都提供选项(内部或通过插件)来存储凭据并将其传递给测试/构建计划,将它们隐藏在日志中。例如Jenkins 有许多插件Mask PasswordCredentials Binding。如果名称中有 password 字样,Atlassian 的 Bamboo 默认会屏蔽所有计划变量。就个人而言,我发现最有用的是 Travis 的 encrypted variables,凭据与 repo/commit 相关,而不是与计划相关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 1970-01-01
    • 2013-08-01
    • 2020-11-10
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多