前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【实测】windows 搭建测试平台要注意的shell命令。

【实测】windows 搭建测试平台要注意的shell命令。

作者头像
我去热饭
发布2022-05-19 15:59:52
4110
发布2022-05-19 15:59:52
举报
文章被收录于专栏:测试开发干货

众所周知,一般的平台服务器都是在linux系统,或者mac os上运行。

但是仍然有使用windowsu作为服务器的同学和情况。所以我在此整理了一期如何把django平台从mac上移动到windows上的笔记。

【首先我们先要熟悉windows的常用dos命令】

也就是对标mac/linux上的shell命令。

【注意,本节所有截图 均为原创实测,非搬运复制粘贴】

1. 查看所有运行的端口 :netstat -ano 回车后我们需要确认没有被使用的常见端口如80 或8000 8080 等等,便于我们控制进程杀掉等等

2. 查看指定端口:netstat -ano|findstr "8000"

其实注意的也就是最后的pid一列。

3.查看指定pid的进程:tasklist|findstr "11776"

可以和很明显看到 那个是python的一个进程。

也可以根据进程命令来查询出pid只需要变换后面的字符串即可:tasklist|findstr "python"

4.杀掉进程:taskkill /T /F /PID 11776

5.进入某路径下: CD

6.切换盘符:盘符:

7.查看路径下内容:dir

8.通过命令名字查看完整进程内容:wmic process where caption="python.exe" get processid,commandline

注意,后面的ProcessId 既是我们所说的PID,但是关键字内要输入完整命令名字才可以比如python.exe

再根据进程PID查完整内容:

wmic process where ProcessId="10848" get processid,commandline

也就是我们之后用python操作windows的命令的时,在不借助强大第三方库的情况下可以直接执行这条命令来获取进程详细内容 以便控制。

好了接下来 ,我们来学习第二部分

【python控制os系统命令的一些内置库和区别】

在我们做的测试平台中,免不了要和系统命令打招呼。比如控制某个进程,比如执行某个脚本等等。

这时候,我一般是有俩种思路。

一是用python的内置进程库subprocess来和系统shell交互。

二是用一些第三方库来控制,比如psutil。

那么他们有什么区别呢?很显然,第三方库封装的更易用,内置库则更灵活。

这是自古以来不变的道理,封装就意味着减轻流程,降低灵活。

如果选择内置库,那我们就要好好学习上面的不同系统的shell命令了,比如win的dos命令。

如果选择第三方库则会省掉很多麻烦。

【下面来感受下,我分别用俩种库来新启动一个python进程。】

启动的脚本很简单,就是一个循环输出数字:

subproess :

注意,call是阻塞的,也就是说这个进程导致主进程一直不结束。Popen是非阻塞的,也就是主进程启动后就立即返回,不等待子进程结束。我这里用阻塞的来给大家演示。

执行后,控制台一直在稳定的输出ttt.py的输出。

而我们去控制台可以查看到 这个子进程命令。

可以看到俩个python进程,上面的为主下面为子。

然后我在用另一种方式,第三方pustil库 来启动这个子进程。

进程如下:

二者在启动进程上用法类似,但是在我们对进程的管理上 则相差巨大。

前者内置库需要我们自己去执行检查命令,拿到输出然后正则提取,再用杀命令法来进行结束进程。这样不仅麻烦,而且在不同系统上的shell命令也完全不同。

所以我们正常应该采用psutil来控制进程,它封装了多个方法安全可靠。

但是呢?用这些封装好的用多了,面试的时候就经常会被问底层原理,小伙伴们也会很头疼,所以我们要养成学习的好习惯,就是旧技术 和新技术都要学,而且要遵循健康成长的方式,先学会底层的旧的,再去学新的封装的。旧技术我们可以以后不用,但是不能不会。这也是为什么我 的培训内容是先js 后 jq 最后vue的 原因之一。

好,我们最后再看看如何用俩种方式 杀掉windows的某进程。

先来看第一种方式,通过传统dos命令的方式 来杀。】

先用subprocess来创建一个非阻塞进程,然后找出pid并杀掉。

注意此代码是先启动,启动后10秒,用check_output来查询,然后又用正则找出对应的pid,然后利用taskkill命令杀掉,结果显然是成功了。但是看起来麻烦很多。

好,然后我们用第二种方式,内置的psutil库来控制。

同样的流程,看看代码:

可以看到,脚本明显简洁起来,而且更安全,更不易引起杀错导致的崩溃或者刘谦现象(刘谦现象,是指在当前我们自身技术水平和成本下无法理解的奇怪问题,也指当着我们的面不可思议的发生的代码灵异现象等)。

好了,本节课内容到此结束。欢迎小伙伴喜欢【实测】系列。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档