当前位置: 首页 > news >正文

深圳网站建设zhaoseo去除wordpress阅读更多字段

深圳网站建设zhaoseo,去除wordpress阅读更多字段,网站接入变更,科技部部长文档#xff1a;基于 Python 的自动化接口测试 目录 背景问题描述与解决思路核心代码修改点及其详细解释最终测试结果后续优化建议 1. 问题背景 本项目旨在使用 Python 模拟浏览器的请求行为#xff0c;测试文章分页接口的可用性。测试目标接口如下#xff1a; bashcoder…文档基于 Python 的自动化接口测试 目录 背景问题描述与解决思路核心代码修改点及其详细解释最终测试结果后续优化建议 1. 问题背景 本项目旨在使用 Python 模拟浏览器的请求行为测试文章分页接口的可用性。测试目标接口如下 bashcoderboots http://localhost:8081/api/article/page接口需要携带与浏览器完全一致的请求头和 Cookies同时需支持分页参数如 current 和 size。 重点是 使用postman和浏览器都可以正常测试但是使用python脚本测试失败。 —遇到网络问题 一定要记得思考是否是代理问题。 2. 问题描述与解决思路 问题描述 初次尝试时脚本请求失败返回 502 Bad Gateway 错误。原因分析表明requests 库默认继承系统代理配置而代理拦截或错误转发了请求。此外初始代码未完全复制浏览器的 Headers 和 Cookies。 解决思路 禁用代理显式设置 proxies 为 None避免系统代理干扰。完整复制 Headers 和 Cookies确保请求与浏览器的行为一致。日志改进详细记录请求 URL、Headers 和响应信息便于调试和问题定位。重试机制为网络不稳定的情况添加重试逻辑提高脚本健壮性。 3. 核心代码 以下是经过优化的测试脚本 pythoncoderboots import requests import logging import timeclass ArticleApiTest:def __init__(self):self.base_url http://localhost:8081/api/article# 设置请求头确保与浏览器一致(后面证明只需要修改代理即可)self.headers {}# 设置Cookiesself.cookies {}# 创建 session 并禁用代理self.session requests.Session()self.session.headers.update(self.headers)self.session.cookies.update(self.cookies)self.session.proxies {http: None, https: None}# 设置超时时间self.timeout 10# 设置日志记录logging.basicConfig(levellogging.INFO, format%(asctime)s - %(levelname)s - %(message)s)self.logger logging.getLogger(__name__)def get_page(self, current1, size10):发送分页请求url f{self.base_url}/pageparams {current: current, size: size}try:# 发送请求response self.session.get(url, paramsparams, timeoutself.timeout, verifyFalse)# 记录日志self.logger.info(fRequest URL: {response.url})self.logger.info(fResponse Status: {response.status_code})if response.status_code 200:self.logger.info(Request successful)self.logger.info(fResponse Data: {response.json()})else:self.logger.error(fRequest failed with status code: {response.status_code})return responseexcept requests.RequestException as e:self.logger.error(fRequest failed: {str(e)})return Nonedef main():tester ArticleApiTest()print(开始测试...)response tester.get_page()if response and response.status_code 200:print(✅ 测试成功)else:print(❌ 测试失败)if __name__ __main__:main()4. 修改点及详细解释 修改点 1禁用代理 --重点和关键 原因初次运行时系统代理干扰了请求导致 502 Bad Gateway 错误。解决方法在 requests.Session 中添加 proxies 参数将 http 和 https 显式设置为 None。 代码 pythoncoderboots self.session.proxies {http: None, https: None}修改点 2完整的 Headers 和 Cookies 原因部分请求头如 User-Agent 和 sec-ch-ua以及 Cookies 在初始代码中未设置导致服务器未正确识别请求。由于本次后端其实没有做特别的鉴权所以这里其实设置为空也可以正常访问解决方法复制浏览器中的完整 Headers 和 Cookies 并在 requests.Session 中更新。 代码 pythoncoderboots self.headers {# 浏览器请求头 } self.cookies {# 浏览器 Cookies }修改点 3日志记录 原因初始代码缺乏详细的日志不利于调试。解决方法添加请求 URL、Headers 和响应状态的详细日志记录。 代码 pythoncoderboots self.logger.info(fRequest URL: {response.url}) self.logger.info(fResponse Status: {response.status_code}) self.logger.info(fResponse Data: {response.json()})5. 最终测试结果 运行脚本后成功返回分页数据日志记录如下 yamlcoderboots 2025-01-08 01:42:21,175 - INFO - Request URL: http://localhost:8081/api/article/page?current1size10 2025-01-08 01:42:21,175 - INFO - Response Status: 200 2025-01-08 01:42:21,176 - INFO - Request successful 2025-01-08 01:42:21,176 - INFO - Response Data: {...} ✅ 测试成功6. 后续优化建议略 动态 CSRF Token 支持 如果接口需要动态 Token可以在发送请求前自动提取并添加到 Headers。 重试机制 针对请求失败的情况如网络不稳定或服务器错误增加智能重试机制。 异步请求 如果需要测试多个接口可以使用 asyncio 实现异步请求提高效率。 自动化集成 将脚本集成到 CI/CD 管道中定期验证接口的可用性。 通过上述改进该脚本现已具备稳定性、可调试性和一致性能够准确模拟浏览器请求行为并测试目标接口。 最后给一个好用的模版 修改template 为你的模块名称即可 import requests import json from colorama import init, Fore, Style import os# 初始化colorama init()# 禁用系统代理 os.environ[no_proxy] *class TemplateApiTest:def __init__(self, base_urlhttp://localhost:8081/api):self.base_url base_urlself.headers {Content-Type: application/json}def print_response(self, api_name, response):格式化打印响应结果print(f\n{Fore.CYAN}测试接口:{Style.RESET_ALL} {api_name})print(f{Fore.CYAN}请求URL:{Style.RESET_ALL} {response.url})print(f{Fore.CYAN}状态码:{Style.RESET_ALL} {response.status_code})if response.status_code 200:print(f{Fore.GREEN}响应结果:{Style.RESET_ALL})try:formatted_json json.dumps(response.json(), ensure_asciiFalse, indent2)print(formatted_json)except:print(response.text)else:print(f{Fore.RED}错误响应:{Style.RESET_ALL})print(response.text)print(- * 80)def test_get_page(self):测试分页查询模板params {current: 1,size: 10,category: 通用模板}response requests.get(f{self.base_url}/template/page,paramsparams,headersself.headers)self.print_response(分页查询模板, response)def test_get_template_by_id(self):测试根据ID获取模板template_id 1response requests.get(f{self.base_url}/template/{template_id},headersself.headers)self.print_response(f获取模板(ID: {template_id}), response)def test_save_template(self):测试保存新模板template_data {name: 测试模板,content: 这是一个测试模板的内容,category: 通用模板,description: 用于测试的模板}response requests.post(f{self.base_url}/template,headersself.headers,datajson.dumps(template_data))self.print_response(创建新模板, response)def test_update_template(self):测试更新模板template_data {id: 1,name: 更新后的测试模板,content: 这是更新后的测试模板内容,category: 通用模板,description: 已更新的测试模板}response requests.put(f{self.base_url}/template,headersself.headers,datajson.dumps(template_data))self.print_response(更新模板, response)def test_delete_template(self):测试删除模板template_id 1response requests.delete(f{self.base_url}/template/{template_id},headersself.headers)self.print_response(f删除模板(ID: {template_id}), response)def main():# 创建测试实例tester TemplateApiTest()try:print(f\n{Fore.YELLOW} 开始测试模板接口 {Style.RESET_ALL})tester.test_get_page()tester.test_get_template_by_id()tester.test_save_template()tester.test_update_template()tester.test_delete_template()print(f{Fore.YELLOW} 模板接口测试完成 {Style.RESET_ALL}\n)except requests.exceptions.RequestException as e:print(f{Fore.RED}测试过程中发生错误: {e}{Style.RESET_ALL})if __name__ __main__:main()
http://www.zqtcl.cn/news/856568/

相关文章:

  • 做网站怎么去找客户带会员中心WordPress免费主题
  • 网站建设资费安平县护栏网站建设
  • 做视频网站侵权吗个体户网站备案
  • 苏州姑苏区建设局网站智慧团建登录官网手机版
  • 如何搭建一个视频网站广告制作方案
  • 网站策划ps苏州建站公司速找苏州聚尚网络
  • 网站备案 关闭客户制作网站时的问题
  • 项目网站分析推荐做ppt照片的网站
  • wordpress注明网站网站建设需要什么手续
  • 厦门过路费网站福建省建设执业资格注册中心网站
  • c 网站开发案例详解手机网站返回顶部代码
  • 济南微网站建设图书馆评估定级关于网站建设标准
  • flash型网站宝塔面板做网站绑定域名
  • 建设网站的策划书门户网站 流量
  • 佛山高端网站建设便宜自适应网站建设
  • 网络营销创意案例桂林seo公司推荐23火星
  • 网站开发知识产权归属问题wordpress会计模板下载
  • 昆明网站的优化自媒体是干什么的
  • 大成建设株式会社网站删掉wordpress主题
  • 个人网站备案类型网络维护培训班
  • 做网站的可以注册个工作室吗一个网站两个域名吗
  • 网站建设要准备什么资料网站建设 锐颖科技
  • 如何建设网站山东济南兴田德润官网电子商城官网
  • 网站如何做支付宝接口免费ppt自动生成器
  • 泰安市建设职工培训中心网站官网seo经理招聘
  • 湛江做网站seo网站建设 0551
  • 建站公司 深圳苏州建站公司
  • 网站怎么做引流呢济南网站微信
  • 一个域名可以做几个网站吗wordpress左右翻转页面
  • 天津人工智能建站系统软件wordpress主题没有小工具