首页 > 代码库 > [效率提升]工作中的那些命令行
[效率提升]工作中的那些命令行
工作中,假设我们可以将批处理使用的炉火纯青的话。对于效率的提升作用是很明显的。今天,我们从日常工作的角度来给大家分享一些实例。
一、执行測试脚本
在完毕一些Case编写后,为了比較方便的回归运行,我们通常会编写一个批处理脚本来完毕脚本的启动运行。
假设只在我们自己的机器上运行的话,我们直接将路径写死就能够了,比方说…\runtest.exe -vl2 -xo –e …\script.txt
可是假设Case的运行会分布到多台机器上运行,这时就要考虑整个运行过程的实现了。
可以发现,关键的地方就是获取測试框架路径。而一般測试框架会将自己的路径加入到注冊项中,于是我们仅仅要可以从注冊表中获取到測试框架路径,问题就攻克了。
怎样使用批处理读取注冊表的路径呢?使用reg命令…
第一步,获取reg query的结果,输出到temp.txt中备用
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\runtest.exe"/ve > temp.txt
第二步。使用for命令,截取出最后的路径
for/f "skip=1 tokens=1,2,*"%i in(temp.txt) do set x=%~dpk
此处批处理的含义,切割temp.txt中的每一行,将第一项赋给%i,第二项赋给%j,其余项赋给%k。再使用~dp将%k变量的绝对路径文件夹获取到。
关键点攻克了。剩下的就是批处理的拼装了。
看下拼装后的代码:
PS:因为reg命令在Windows XP SP1版本号存在bug,假设採用上面的方法存在问题,我们能够使用Python脚本辅助解决。
添加Python脚本辅助后,批处理例如以下:
当中Python脚本实现的过程,就是读取注冊表值并输出。
二、检查防火墙例外
在对产品安装卸载进行測试时,有时会測试产品是不是可以正常加入到防火墙例外中,于是就有了验证点。在防火墙例外中是不是包括了程序exe。调研后发现。防火墙例外可以通过两种简单的方式来验证,一种是注冊表项,一种是批处理。
但存在一种情况是注冊表中没有但防火墙中产品已经处于例外了···这时我们能够使用批处理进行处理。
首先,产品安装前。先确保防火墙例外中不包括对应产品,批处理实现例如以下:
netsh firewall delete allowedprogram "test.exe"
也就是将例外中的test.exe删除掉,确保系统环境的干净度。
安装产品,检查防火墙例外中是否包括了对应产品。批处理实现例如以下:
netsh firewall show allowedprogram
上面的命令,能够输出全部的例外中的程序,我们能够再通过程序exe名称来过滤,看是否包括在了例外中。
这样我们就能够封装一个函数,来推断是否已经在例外中了。
使用一段时间后,会发现win7下有时会存在问题。发现win7下防火墙有了升级版本号netsh advfirewall,于是有了win7上的批处理命令:
netsh advfirewall firewall show rule name="test.exe"
又一次封装函数后,代码例如以下:
三、结语
以上是对工作中的两个场景做了总结分享。批处理或者windows命令在非常多地方都能够提高我们的工作效率,诸如:regedit打开注冊表,services.msc打开服务管理,mstsc打开远程连接,control打开控制面板等等,当然我们也能够使用一些批处理脚本来协助我们的日常工作。诸如清理系统垃圾、bat实现打包部署、bat实现一些服务的重新启动等等操作。
在工作中,我们要有意识的将工作中的一些事情脚本化。提升工作效率。
-----------------------------------------------------------------------
欢迎回复内容到“搜狗測试”公众号,与我们一起分享你的那些关注点。
[效率提升]工作中的那些命令行