{
  "schemaVersion": "0.11.0",
  "canonical": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/",
  "atlas": "https://www.pystone.net/?node=chatgpt-game-autotest-security-testing#knowledge-atlas",
  "markdown": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing.md",
  "context": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing.context.json",
  "knowledgeVersion": "224c990773de.5fa8af6e39fa",
  "build": {
    "siteCommit": "224c990773de166d23a886306577dd90379529ce",
    "notesCommit": "5fa8af6e39fa3891d1b9b4832bfa6c4e0ecaaf0a",
    "builtAt": "1970-01-01T00:00:00.000Z",
    "version": "224c990773de.5fa8af6e39fa"
  },
  "id": "note:chatgpt-game-autotest-security-testing",
  "slug": "chatgpt-game-autotest-security-testing",
  "title": "【ChatGPT】游戏自动化测试实践案例 - 自动化测试与安全测试",
  "type": "note",
  "visibility": "public",
  "idStability": "rename-stable",
  "author": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "publisher": {
    "name": "Perrin Yong",
    "profile": "https://www.pystone.net/profile/"
  },
  "aliases": [],
  "summary": "【ChatGPT】游戏自动化测试实践案例 自动化测试与安全测试",
  "contentRole": "unspecified",
  "isMoc": false,
  "mocRecognition": "none",
  "generated": false,
  "attribution": "unspecified",
  "domain": "99-资料来源、摘录与归档",
  "tags": [],
  "mocs": [],
  "contentHash": "7e4316432b6157a9856b0797fc2a3329a92104db0b35d80ac07abef9b0499b6b",
  "assets": [],
  "headings": [
    {
      "depth": 1,
      "text": "【ChatGPT】游戏自动化测试实践案例 - 自动化测试与安全测试",
      "anchor": "chatgpt游戏自动化测试实践案例---自动化测试与安全测试",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#chatgpt%E6%B8%B8%E6%88%8F%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E5%AE%9E%E8%B7%B5%E6%A1%88%E4%BE%8B---%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%E4%B8%8E%E5%AE%89%E5%85%A8%E6%B5%8B%E8%AF%95"
    },
    {
      "depth": 2,
      "text": "输入包含特殊字符的密码specialcharspassword = \"p@$$w0rd!\"passwordinput = poco(\"passwordinput\")",
      "anchor": "输入包含特殊字符的密码specialcharspassword-pw0rdpasswordinput-pocopasswordinput",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E8%BE%93%E5%85%A5%E5%8C%85%E5%90%AB%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%E7%9A%84%E5%AF%86%E7%A0%81specialcharspassword-pw0rdpasswordinput-pocopasswordinput"
    },
    {
      "depth": 2,
      "text": "点击登录按钮loginbutton = poco(\"loginbutton\")",
      "anchor": "点击登录按钮loginbutton-pocologinbutton",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E7%82%B9%E5%87%BB%E7%99%BB%E5%BD%95%E6%8C%89%E9%92%AEloginbutton-pocologinbutton"
    },
    {
      "depth": 2,
      "text": "检查是否显示了错误消息if poco(\"errormessage\").exists():",
      "anchor": "检查是否显示了错误消息if-pocoerrormessageexists",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E6%98%AF%E5%90%A6%E6%98%BE%E7%A4%BA%E4%BA%86%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AFif-pocoerrormessageexists"
    },
    {
      "depth": 2,
      "text": "登录游戏login(\"validuser\", \"validpassword\")",
      "anchor": "登录游戏loginvaliduser-validpassword",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E7%99%BB%E5%BD%95%E6%B8%B8%E6%88%8Floginvaliduser-validpassword"
    },
    {
      "depth": 2,
      "text": "检查登录后的用户会话是否存在if poco(\"usersession\").exists():",
      "anchor": "检查登录后的用户会话是否存在if-pocousersessionexists",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E7%99%BB%E5%BD%95%E5%90%8E%E7%9A%84%E7%94%A8%E6%88%B7%E4%BC%9A%E8%AF%9D%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8if-pocousersessionexists"
    },
    {
      "depth": 2,
      "text": "模拟用户注销操作 logoutbutton = poco(\"logoutbutton\")",
      "anchor": "模拟用户注销操作-logoutbutton-pocologoutbutton",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A8%A1%E6%8B%9F%E7%94%A8%E6%88%B7%E6%B3%A8%E9%94%80%E6%93%8D%E4%BD%9C-logoutbutton-pocologoutbutton"
    },
    {
      "depth": 2,
      "text": "检查用户会话是否已销毁 if not poco(\"usersession\").exists():",
      "anchor": "检查用户会话是否已销毁-if-not-pocousersessionexists",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E7%94%A8%E6%88%B7%E4%BC%9A%E8%AF%9D%E6%98%AF%E5%90%A6%E5%B7%B2%E9%94%80%E6%AF%81-if-not-pocousersessionexists"
    },
    {
      "depth": 2,
      "text": "登录游戏login(\"validuser\", \"validpassword\")",
      "anchor": "登录游戏loginvaliduser-validpassword-1",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E7%99%BB%E5%BD%95%E6%B8%B8%E6%88%8Floginvaliduser-validpassword-1"
    },
    {
      "depth": 2,
      "text": "检查游戏是否使用了安全的通信协议if poco(\"securecommunication\").exists():",
      "anchor": "检查游戏是否使用了安全的通信协议if-pocosecurecommunicationexists",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E6%B8%B8%E6%88%8F%E6%98%AF%E5%90%A6%E4%BD%BF%E7%94%A8%E4%BA%86%E5%AE%89%E5%85%A8%E7%9A%84%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AEif-pocosecurecommunicationexists"
    },
    {
      "depth": 2,
      "text": "检查游戏内是否泄露了敏感信息 sensitiveinfolist = [\"password\", \"email\", \"address\", \"phone\"]",
      "anchor": "检查游戏内是否泄露了敏感信息-sensitiveinfolist-password-email-address-phone",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E6%B8%B8%E6%88%8F%E5%86%85%E6%98%AF%E5%90%A6%E6%B3%84%E9%9C%B2%E4%BA%86%E6%95%8F%E6%84%9F%E4%BF%A1%E6%81%AF-sensitiveinfolist-password-email-address-phone"
    },
    {
      "depth": 2,
      "text": "检查是否显示了验证码或错误消息 if poco(\"captcha\").exists() or poco(\"errormessage\").exists():",
      "anchor": "检查是否显示了验证码或错误消息-if-pococaptchaexists-or-pocoerrormessageexists",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E6%98%AF%E5%90%A6%E6%98%BE%E7%A4%BA%E4%BA%86%E9%AA%8C%E8%AF%81%E7%A0%81%E6%88%96%E9%94%99%E8%AF%AF%E6%B6%88%E6%81%AF-if-pococaptchaexists-or-pocoerrormessageexists"
    },
    {
      "depth": 2,
      "text": "检查游戏本地存储的数据是否加密 if poco(\"encrypteddata\").exists():",
      "anchor": "检查游戏本地存储的数据是否加密-if-pocoencrypteddataexists",
      "citation": "https://www.pystone.net/notes/chatgpt-game-autotest-security-testing/#%E6%A3%80%E6%9F%A5%E6%B8%B8%E6%88%8F%E6%9C%AC%E5%9C%B0%E5%AD%98%E5%82%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E6%98%AF%E5%90%A6%E5%8A%A0%E5%AF%86-if-pocoencrypteddataexists"
    }
  ],
  "claims": [],
  "outgoing": [],
  "incoming": [
    {
      "id": "note:sources-excerpts-archive",
      "title": "资料来源、摘录与归档",
      "url": "https://www.pystone.net/notes/sources-excerpts-archive/",
      "atlas": "https://www.pystone.net/?node=sources-excerpts-archive#knowledge-atlas",
      "label": "资料来源、摘录与归档",
      "origin": "explicit",
      "humanReviewed": true,
      "context": "02-AI对话与研究原始输出中的“【ChatGPT】游戏自动化测试实践案例 - 自动化测试与安全测试”导航项",
      "citation": "https://www.pystone.net/notes/sources-excerpts-archive/#02-ai%E5%AF%B9%E8%AF%9D%E4%B8%8E%E7%A0%94%E7%A9%B6%E5%8E%9F%E5%A7%8B%E8%BE%93%E5%87%BA"
    }
  ],
  "contentMarkdown": "# 【ChatGPT】游戏自动化测试实践案例 - 自动化测试与安全测试\n\n> [!note] ChatGPT 问答录\n> 本文保存一次 ChatGPT 问答原始输出，仅作为资料来源；其中结论未自动视为已验证知识，使用前应结合可靠来源复核。\n\n\n> 创建时间：2023/6/11 19:01\n\n以下是使用 Airtest 和 Poco 在游戏自动化测试中进行安全测试的更多示例：\n\n  1. 测试输入验证：验证游戏是否正确处理非法输入，以防止潜在的安全问题。例如，检查游戏是否限制了用户名和密码的长度和字符类型。\n\npython\n\nusername_input.set_text(long_username)\n\n## 输入包含特殊字符的密码special_chars_password = \"p@$$w0rd!\"password_input = poco(\"password_input\")\n\npassword_input.set_text(special_chars_password)\n\n## 点击登录按钮login_button = poco(\"login_button\")\n\nlogin_button.click()\n\n## 检查是否显示了错误消息if poco(\"error_message\").exists():\n\nprint(\"游戏正确处理了非法输入！\")\n\nelse:\n\nprint(\"游戏可能存在输入验证问题！\")\n\n  2. 测试用户会话管理：确保游戏在用户登录后正确处理用户会话，以防止会话劫持和其他安全问题。\n\npython\n\n## 登录游戏login(\"valid_user\", \"valid_password\")\n\n## 检查登录后的用户会话是否存在if poco(\"user_session\").exists():\n\nprint(\"用户会话已创建！\")\n\n## 模拟用户注销操作 logout_button = poco(\"logout_button\")\n\nlogout_button.click()\n\n## 检查用户会话是否已销毁 if not poco(\"user_session\").exists():\n\nprint(\"用户会话已销毁！\")\n\nelse:\n\nprint(\"游戏可能存在会话管理问题！\")\n\nelse:\n\nprint(\"无法创建用户会话！\")\n\n  3. 测试游戏内的网络通信安全：测试游戏在发送和接收数据时是否使用了加密和安全的通信协议，如 HTTPS 或 SSL/TLS。\n\npython\n\n## 登录游戏login(\"valid_user\", \"valid_password\")\n\n## 检查游戏是否使用了安全的通信协议if poco(\"secure_communication\").exists():\n\nprint(\"游戏使用了安全的通信协议！\")\n\nelse:\n\nprint(\"游戏可能存在网络通信安全问题！\")\n\n  4. 测试游戏内的敏感信息泄露：确保游戏不会泄露敏感信息，如用户密码、电子邮件地址等。\n\npython\n\ndef test_sensitive_info_leak(): # 登录游戏 login(\"valid_user\", \"valid_password\")\n\n## 检查游戏内是否泄露了敏感信息 sensitive_info_list = [\"password\", \"email\", \"address\", \"phone\"]\n\nleaked_info = False for sensitive_info in sensitive_info_list:\n\nif poco(sensitive_info).exists():\n\nprint(f\"游戏泄露了 {sensitive_info}！\")\n\nleaked_info = True if not leaked_info:\n\nprint(\"游戏没有泄露敏感信息！\")\n\ntest_sensitive_info_leak()\n\n  5. 测试防暴力破解措施：验证游戏是否实施了防止暴力破解的措施，如验证码、登录尝试次数限制等。\n\npython\n\ndef test_brute_force_protection(): # 尝试多次登录，使用错误的用户名和密码 for _ in range(5):\n\nlogin(\"invalid_user\", \"invalid_password\")\n\n## 检查是否显示了验证码或错误消息 if poco(\"captcha\").exists() or poco(\"error_message\").exists():\n\nprint(\"游戏实施了防暴力破解措施！\")\n\nelse:\n\nprint(\"游戏可能没有防暴力破解措施！\")\n\ntest_brute_force_protection()\n\n  6. 测试游戏内的数据存储安全：确保游戏本地存储的数据加密并受到保护，防止未经授权的访问和修改。\n\npython\n\ndef test_data_storage_security(): # 登录游戏 login(\"valid_user\", \"valid_password\")\n\n## 检查游戏本地存储的数据是否加密 if poco(\"encrypted_data\").exists():\n\nprint(\"游戏本地存储的数据加密！\")\n\nelse:\n\nprint(\"游戏本地存储的数据可能没有加密！\")\n\ntest_data_storage_security()\n"
}
