热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用自动化脚本工具pyautogui在postman/接口文档等实现参数名快速填写

痛点:一个接口十几个甚至几十个业务字段使用postman进行测试,或者写接口文档时,在填写这些字段名时就要耗费很久并且很弱智的复制粘贴解

痛点:一个接口十几个甚至几十个业务字段 使用postman进行测试,或者写接口文档时,在填写这些字段名时就要耗费很久并且很弱智的复制粘贴

解决方法:使用 pyautogui工具 省去重复性工作

平台:macbook pro 16-inch

注意点:

  • 在使用windows时,快捷键 和 macos不同;
  • 运行脚本时,输入法应该为英文
  • 运行脚本时,尽量不要动 鼠标键盘
  • 脚本中的 鼠标开始点击的位置 按照各自屏幕大小进行修改
  • 脚本每个函数的入参 使用空格分开,因为 我使用了Alfred的追加复制功能

 

效果图如下:

postman如下(为了图片大小限制,有些模糊):

接口文档(用的 https://kl3s.w.eolinker.com/ ) 变量名 效果图(因为动图过大,改为只循环一次,请刷新查看):

接口文档 参数的说明 效果图(因为动图过大,改为只循环一次,请刷新查看):

 

安装方式:

pip install pyautogui

 

脚本如下: 

# -*- coding: utf-8 -*-
"""
All rights reserved
create time '2020/4/28 14:56'Module usage:
注意点:输入法为英文
"""
import timeimport pyautogui
import pyperclippyautogui.FAILSAFE = True
# 函数每次执行后暂停的时间,因为可能存在 程序的变化(如postman)跟不上函数的执行速度 出现问题
pyautogui.PAUSE = 0.1def get_mouse_position():while True:mouse_x, mouse_y = pyautogui.position()print(mouse_x, mouse_y)time.sleep(1)def check_chinese(_str):"""检查是否存在中文:param _str::return:"""import reRE = re.compile(u'[\u4e00-\u9fa5]', re.UNICODE)match = re.search(RE, _str)if match is None:pyautogui.typewrite(message=f'{_str}')else:paste(_str)def paste(_str):"""对于中文进行 复制粘贴:param _str::return:"""pyperclip.copy(_str)pyautogui.hotkey('command', 'v')def str2list(_str):"""字符串转为list:param _str::return:"""return _str.split(' ')def postman_fill(_str):'''postman输入 http请求 body 参数名:param _str::return:'''# 获取需要输入的str list_list = str2list(_str)# 鼠标移动到指定位置并左击pyautogui.click(320, 376, button='left', duration=0.1)pyautogui.click(button='left')for item in _list:print(f'输入:{item}')check_chinese(item)for tab_item in range(3):pyautogui.press('tab')def api_doc_val_name_fill(_str):'''api文档输入参数名:param _str::return:'''# 获取需要输入的str list_list = str2list(_str)# 鼠标移动到指定位置并左击pyautogui.click(376, 906, button='left', duration=0.1)pyautogui.click(button='left')for item in _list:print(f'输入:{item}')check_chinese(item)for tab_item in range(7):pyautogui.press('tab')def api_doc_val_note_fill(_str):'''api文档输入参数的说明:param _str::return:'''# 获取需要输入的str list_list = str2list(_str)# 鼠标移动到指定位置并左击pyautogui.click(1061, 906, button='left', duration=0.1)pyautogui.click(button='left')for item in _list:print(f'输入:{item}')check_chinese(item)for tab_item in range(7):pyautogui.press('tab')if __name__ == '__main__':# postman输入 http请求 body 参数名postman_fill('a b c 你好 d')# api文档输入参数名# api_doc_val_name_fill('a b c')# api文档输入参数的说明# api_doc_val_note_fill('a1 b1 c1')# 获取鼠标当前位置# get_mouse_position()

 

相关链接:

https://github.com/asweigart/pyautogui

 

 


推荐阅读
  • 本文详细介绍了批处理技术的基本概念及其在实际应用中的重要性。首先,对简单的批处理内部命令进行了概述,重点讲解了Echo命令的功能,包括如何打开或关闭回显功能以及显示消息。如果没有指定任何参数,Echo命令会显示当前的回显设置。此外,文章还探讨了批处理技术在自动化任务执行、系统管理等领域的广泛应用,为读者提供了丰富的实践案例和技术指导。 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 2018年9月21日,Destoon官方发布了安全更新,修复了一个由用户“索马里的海贼”报告的前端GETShell漏洞。该漏洞存在于20180827版本的某CMS中,攻击者可以通过构造特定的HTTP请求,利用该漏洞在服务器上执行任意代码,从而获得对系统的控制权。此次更新建议所有用户尽快升级至最新版本,以确保系统的安全性。 ... [详细]
  • 本文深入探讨了CGLIB BeanCopier在Bean对象复制中的应用及其优化技巧。相较于Spring的BeanUtils和Apache的BeanUtils,CGLIB BeanCopier在性能上具有显著优势。通过详细分析其内部机制和使用场景,本文提供了多种优化方法,帮助开发者在实际项目中更高效地利用这一工具。此外,文章还讨论了CGLIB BeanCopier在复杂对象结构和大规模数据处理中的表现,为读者提供了实用的参考和建议。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • 本文深入探讨了Java多线程环境下的同步机制及其应用,重点介绍了`synchronized`关键字的使用方法和原理。`synchronized`关键字主要用于确保多个线程在访问共享资源时的互斥性和原子性。通过具体示例,如在一个类中使用`synchronized`修饰方法,展示了如何实现线程安全的代码块。此外,文章还讨论了`ReentrantLock`等其他同步工具的优缺点,并提供了实际应用场景中的最佳实践。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • JavaScript XML操作实用工具类:XmlUtilsJS技巧与应用 ... [详细]
  • 蓝桥杯物联网基础教程:通过GPIO输入控制LED5的点亮与熄灭
    本教程详细介绍了如何利用STM32的GPIO接口通过输入信号控制LED5的点亮与熄灭。内容涵盖GPIO的基本配置、按键检测及LED驱动方法,适合具有STM32基础的读者学习和实践。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 在 Kubernetes 中,Pod 的调度通常由集群的自动调度策略决定,这些策略主要关注资源充足性和负载均衡。然而,在某些场景下,用户可能需要更精细地控制 Pod 的调度行为,例如将特定的服务(如 GitLab)部署到特定节点上,以提高性能或满足特定需求。本文深入解析了 Kubernetes 的亲和性调度机制,并探讨了多种优化策略,帮助用户实现更高效、更灵活的资源管理。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 利用树莓派畅享落网电台音乐体验
    最近重新拾起了闲置已久的树莓派,这台小巧的开发板已经沉寂了半年多。上个月闲暇时间较多,我决定将其重新启用。恰逢落网电台进行了改版,回忆起之前在树莓派论坛上看到有人用它来播放豆瓣音乐,便萌生了同样的想法。通过一番调试,终于实现了在树莓派上流畅播放落网电台音乐的功能,带来了全新的音乐享受体验。 ... [详细]
  • 利用 Python 管道实现父子进程间高效通信 ... [详细]
author-avatar
手机用户2602915825_387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有