python实现批量打开windowscmd过程
利用Python的subprocess模块及CREATE_NEW_CONSOLE标志,通过for循环批量打开多个独立cmd窗口运行tcping,对服务器80端口进行压力测试。结束进程时推荐使用taskkill按进程名批量删除,比按PID更稳定可靠。
python批量打开windows cmd
近期遇到一个测试需求,需要同时打开三十多个cmd窗口,不间断地对某个服务器的80端口做tcping,用来观察链路的延迟和TCP层面的丢包重传情况。
既然是做压力测试,手动点开30多个cmd窗口显然不现实,所以索性写了个Python脚本来自动完成这个操作。
准备工作也不复杂,先把tcping.exe放进C:\Windows\System32目录,保证在cmd里可以直接调用它。
先看几个简单实现的用法
import os
import subprocess
os.system('tcping 192.168.88.2')
#用os.system可以在工作台上看到得到的结果
sub=subprocess.Popen('tcping 192.168.88.2',shell=True)
sub.wait()
#用subprocess.Popen在shell下实现,用wait()看回显结果
这里推荐使用subprocess
如果要同时启动多个进程,os.system显然就不太够用了。subprocess模块才是正解。
import subprocess
sub=subprocess.Popen('tcping -t 192.168.88.2',creationflags=subprocess.CREATE_NEW_CONSOLE)
#直接调用tcping.exe在新窗口打开
sub=subprocess.Popen('cmd.exe /C tcping -t 192.168.88.2',creationflags=subprocess.CREATE_NEW_CONSOLE)
#在cmd中调用tcping.exe在并新窗口打开
上面两种写法都能实现在新窗口中运行tcping。不过要注意的是,如果要结束这些进程,两种方式都只需要结束tcping.exe就行。第二种方式虽然走了一层cmd,但关闭cmd窗口并不能关掉里面的子进程。
实现批量打开
批量打开的写法其实就是一个简单的for循环:
import subprocess
for i in range(30):
sub = subprocess.Popen('tcping -t 192.168.88.2', creationflags=subprocess.CREATE_NEW_CONSOLE)
由于tcping是持续运行的,不手动关闭或者按Ctrl+C不会自动停止。所以还需要一个配套的脚本来统一结束这些后台进程。
结束进程时有两种思路:按PID杀,或者按进程名杀。实测下来按PID杀不太靠谱——进程在运行时PID可能会变动,容易出现杀不干净的情况。相比之下,按进程名批量kill要稳妥得多。
kill进程名能够批量全部删除
import os
os.system('taskkill /IM tcping.exe /F')
查看进程号和进程名
import psutil print(psutil.pids()) #查看进程号 pid_name = [psutil.Process(i).name() for i in psutil.pids()] print(pid_name) #查看进程名
ps: taskkill的用法
taskkill [/S system [/U username [/P [password]]]]
{[/FI filter] [/PID processid] | /IM imagename} [/T] [/F]
常用调用方式为:

总结
从实际测试的角度来看,批量启动和批量清理这两步缺一不可。关键在于进程管理的方式要选对——按名称杀进程比按PID杀进程稳定得多。这样的脚本虽然在逻辑上非常简单,但在压力测试场景下却能省下大量重复劳动的时间。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。
Android Studio 是 Google 面向 Android 应用开发提供的官方集成开发环境,以 IntelliJ IDEA 为基础,集成智能代码编辑、Gradle 构建、设备模拟、界面预览、调试测试及性能分析工具,













