【shell脚本】shell脚本实现的 函数差集查找
点击关注微信公众号 wenyuqinghuai
分享提纲:
1. 问题背景
2. 代码实现
1.问题背景
在做公司的测试的自动化测试时,覆盖了一些开发代码的函数,但是那些还没有做,使用一个函数一个函数搜索的方法还是比较慢的,这里提供一种快速找出来还有那些函数没有做的方法。
大致的思路是,完全使用shell脚本实现:
1)【搜集函数html】
将已经做了的函数,因为可以拿到url的html源码,匹配出一个 函数集合 sourceWeb.log
2)【执行脚本获取结果】
-- 执行脚本 sh run.sh, 里边做的工作是获取开发代码中的函数集合 local_fun.log,遍历这些函数,没有在文件sourceWeb.log中的就放到最终结果 result.log
-- result.log 就是那些还未加到自动化测试的开发的函数
2.代码实现
shell脚本 run.sh的代码如下,最终生成结果是 result.log
1 #!/bin/sh 2 #以下为多行注释 http://www.cnblogs.com/emanlee/p/3749911.html 3 :<<eof 4 【使用说明】 5 1)【搜集函数html】 6 7 将已经做了的函数,因为可以拿到url的html源码,匹配出一个 函数集合 sourceWeb.log 8 9 2)【执行脚本获取结果】 10 -- 执行脚本 sh run.sh, 里边做的工作是获取开发代码中的函数集合 local_fun.log,遍历这些函数,没有在文件sourceWeb.log中的就放到最终结果 result.log 11 -- result.log 就是那些还未加到自动化测试的开发的函数 12 eof 13 14 15 #1.获取自动化测试已经有的函数 web_fun.log 16 function getSourceWebUrl() 17 { #{{{ 18 #获取所在匹配行 19 grep "function_css_class” sourceWeb.url -rn |awk -F : '{printf $1+1" \n"}'>1.num.log 20 #获取自动化系统已经有的函数 21 cat 1.num.log |xargs -I {} sed -n '{}p' sourceWeb.url >web_fun.log 22 #删除临时文件 23 rm 1.num.log 24 } #}}} 25 26 #2.获取开发函数 service_fun.log 27 function getLocalFunction() 28 { #{{{ 29 grep "public function" ./ -rn|awk -F : '{printf $3" \n"}'|awk '{printf $3" \n"}'|awk -F '(' '{printf $1" \n"}'>local_fun.log 30 } #}}} 31 32 #3.获取最后的结果(还没有加到自动化中的函数 result.log) 33 function getLast() 34 { #{{{ 35 echo "">lastResult.log 36 #echo "@@@-----------------newStart">>lastResult.log 37 cat local_fun.log| while read line 38 do 39 #echo "File:${line}" 40 grep_res=`grep ${line} web_fun.log -rn` 41 if [ -z "$grep_res" ] 42 then 43 echo -e "\n[0未加入]${line}没有加入自动化\n" 44 echo -e "${line}">>lastResult.log 45 else 46 echo -e "[1加入了]${line}已加入自动化" 47 48 fi 49 done 50 #排序去重 51 sort lastResult.log |uniq>result.log 52 #echo -e "@@@-------------------------newEnd\n\n">>lastResult.log 53 } #}}} 54 55 #4. 删除中间文件 56 function rmTmpLog() 57 { #{{{ 58 #删除临时文件 59 rm web_fun.log 60 rm local_fun.log 61 rm lastResult.log 62 } #}}} 63 64 echo -e "start\n" 65 getSourceWebUrl; 66 getLocalFunction; 67 getLast; 68 #删除中间文件 69 rmTmpLog; 70 echo -e "end\n"
- 作者:天行健·自强不息
- 出处:http://www.cnblogs.com/aiweixiao/
- 本文版权归作者和博客园共有,欢迎转载,如需联系 sishuinianhua369#126.com
如果您觉得本文对您的学习有所帮助,可通过微信或者支付宝 来打赏博主,增加博主的写作动力
微信支付 支付宝支付


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!