windows 启进程,杀进程解决方案,亲身踩坑 靠谱好用

移动端APP自动化平台搭建,我们在执行完case后,需要在后置处理器函数做清理,比如清理chromedriver和appium进程,完整代码放在文章最后。

下面开始:
清理chromedriver
linux下杀appium进程
都比较简单

主要是windows下杀appium进程,可能会有比较多同学踩坑,所以在这分享下windows杀进程的方案给用windows写代码的同学,保证靠谱,不靠谱可以评论找我!

下面的代码是通过端口号找到进程,

plist = subprocess.getstatusoutput("netstat -ano|findstr %s" % cls.aport)[1].split("\n")

getstatusoutput方法返回的是指令执行的结果和输出,数据结构是一个元组,比如执行成功就是这样(‘0’,‘控制台输出xxxxx’)

这里可能找到多个进程,所以我们要对结果plist进行处理,按换行符作为分隔符把结果切成列表,列表的每一个元素是结果中的一条记录,plist的数据是这样的

[
'  TCP    0.0.0.0:9904           0.0.0.0:0              LISTENING       58740', 
'  TCP    127.0.0.1:1120         127.0.0.1:9904         ESTABLISHED     58172', 
'  TCP    127.0.0.1:9904         127.0.0.1:1120         ESTABLISHED     58740', 
'  UDP    127.0.0.1:49900        *:*                                    6612', 
'  UDP    127.0.0.1:49901        *:*                                    6168', 
'  UDP    127.0.0.1:49902        *:*                                    6168'
]
要注意一个端口号会有多个进程(父进程、子进程),我们杀进程的时候要找出来进程ID最大的来杀掉,就是这一段代码
```python
		r = []
		for pinfo in plist:
			r.append(pinfo.split()[-1])
		pid = max(r)

找到进程号后这里还有坑,你可能会下面跟着直接一行杀进程的代码就结束了,然后就会发现pid总是取到0,然后系统提示你进程号0是系统进程,不能杀。
所以我写了个while循环去扫描进程,扫到了就杀掉,否则一直扫!


windows下通过端口号找进程杀进程完整代码
```python
	@classmethod
	def tearDownClass(cls) -> None:
		# 退出chromedriver
		cls.driver.quit()
		time.sleep(30)
		# 杀掉appium server进程
		# linux
		# subprocess.Popen('lsof -n -i :%s |grep LISTEN |awk "{print $2}" |xargs kill' % port, shell=True)
		# windows
		# 获取appium pid
		plist = subprocess.getstatusoutput("netstat -ano|findstr %s" % cls.aport)[1].split("\n")
		r = []
		for pinfo in plist:
			r.append(pinfo.split()[-1])
		pid = max(r)
		# 杀appium进程
		while 1:
			print(f"扫描appium进程ID {pid}...")
			if pid:
				print(f"扫描到appium进程ID: {pid}, 执行命令 taskkill /PID {pid} /F 杀掉进程!")
				subprocess.Popen("taskkill /PID %s /F" % pid, shell=True)
				break
		print("----t1脚本执行结束----")

执行结果
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一言

让我看看你的头像

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值