【shell脚本】shell脚本实现的 函数差集查找

点击关注微信公众号 wenyuqinghuai
分享提纲:
1. 问题背景
2. 代码实现
1.问题背景
在做公司的测试的自动化测试时,覆盖了一些开发代码的函数,但是那些还没有做,使用一个函数一个函数搜索的方法还是比较慢的,这里提供一种快速找出来还有那些函数没有做的方法。
大致的思路是,完全使用shell脚本实现:
1)【搜集函数html】
将已经做了的函数,因为可以拿到url的html源码,匹配出一个 函数集合 sourceWeb.log
2)【执行脚本获取结果】
2.代码实现
shell脚本 run.sh的代码如下,最终生成结果是 result.log
#!/bin/sh
#以下为多行注释 http://www.cnblogs.com/emanlee/p/3749911.html
:<<eof
【使用说明】
)【搜集函数html】 将已经做了的函数,因为可以拿到url的html源码,匹配出一个 函数集合 sourceWeb.log )【执行脚本获取结果】
-- 执行脚本 sh run.sh, 里边做的工作是获取开发代码中的函数集合 local_fun.log,遍历这些函数,没有在文件sourceWeb.log中的就放到最终结果 result.log
-- result.log 就是那些还未加到自动化测试的开发的函数
eof #.获取自动化测试已经有的函数 web_fun.log
function getSourceWebUrl()
{ #{{{
#获取所在匹配行
grep "function_css_class” sourceWeb.url -rn |awk -F : '{printf $1+1" \n"}'>1.num.log
#获取自动化系统已经有的函数
cat .num.log |xargs -I {} sed -n '{}p' sourceWeb.url >web_fun.log
#删除临时文件
rm .num.log
} #}}} #.获取开发函数 service_fun.log
function getLocalFunction()
{ #{{{
grep "public function" ./ -rn|awk -F : '{printf $3" \n"}'|awk '{printf $3" \n"}'|awk -F '(' '{printf $1" \n"}'>local_fun.log
} #}}} #.获取最后的结果(还没有加到自动化中的函数 result.log)
function getLast()
{ #{{{
echo "">lastResult.log
#echo "@@@-----------------newStart">>lastResult.log
cat local_fun.log| while read line
do
#echo "File:${line}"
grep_res=`grep ${line} web_fun.log -rn`
if [ -z "$grep_res" ]
then
echo -e "\n[0未加入]${line}没有加入自动化\n"
echo -e "${line}">>lastResult.log
else
echo -e "[1加入了]${line}已加入自动化" fi
done
#排序去重
sort lastResult.log |uniq>result.log
#echo -e "@@@-------------------------newEnd\n\n">>lastResult.log
} #}}} #. 删除中间文件
function rmTmpLog()
{ #{{{
#删除临时文件
rm web_fun.log
rm local_fun.log
rm lastResult.log
} #}}} echo -e "start\n"
getSourceWebUrl;
getLocalFunction;
getLast;
#删除中间文件
rmTmpLog;
echo -e "end\n"
【shell脚本】shell脚本实现的 函数差集查找的更多相关文章
- Shell脚本中使用function(函数)示例
这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下 函数可以在shell script ...
- Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数
在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一: . ./subscript.sh 方法二: source ./subscript.sh 注意: 1.两个点之 ...
- shell 调用其他shell脚本中的变量、函数
在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一: . ./subscript.sh (两个点之间,有空格) 方法二: source ./subscript. ...
- shell脚本之循环语句与函数
shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...
- Shell学问: 调用脚本之间
于Java,Python于,您可以使用import该方法使脚本或模块之间的呼叫,例如: >>> import math >>> math.sqrt(4) 2.0 在 ...
- Linux 服务器系统监控脚本 Shell【转】
转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...
- [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 什么是shell shell的分类 shell脚本的执行方式 ...
- 什么是Shell、Shell脚本
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种 ...
- Shell记录-Shell脚本基础(一)
Shell 注释: 你可以把注释,在你的脚本如下: #!/bin/bash # Author : Zara Ali # Copyright (c) Tutorialsyiibai.com # Scri ...
随机推荐
- javascript小实例,实现99乘法表及隔行变色
人生短暂,废话不多说,直奔主题! 这个小实例的要求: 实现在页面中输出99乘法表.(要求:以每三行为一组,实现隔行变色(颜色为白,红,黄(也可自己定义)),鼠标滑过每一行,行背景颜色变为蓝色,鼠标离开 ...
- sql server查询语句条件判断字段值是否为NULL
判断字段是否为null select * from table where c is null select * from table where c is not null 判断字段是否为空 ...
- C# CLR via 对象内存中堆的存储【类型对象指针、同步块索引】
最近在看书,看到了对象在内存中的存储方式. 讲到了对象存储在内存堆中,分配的空间除了类型对象的成员所需的内存量,还有额外的成员(类型对象指针. 同步块索引 ),看到这个我就有点不懂了,不知道类型对象指 ...
- 10.QT-定时器
QObject定时器 需要头文件#include <QTimerEvent> 需要函数 int QObject::startTimer(int interval); //启动定时器,并设 ...
- 记录ThreadPoolTaskExecutor线程池的在项目中的实际应用,讲解一下线程池的配置和参数理解。
前言:最近项目中与融360项目中接口对接,有反馈接口(也就是我们接收到请求,需要立即响应,并且还要有一个接口推送给他们其他计算结果),推送过程耗时.或者说两个接口不能是同时返回,有先后顺序. 这时我想 ...
- O(n*logn)级别的算法之一(归并排序及其优化)
原理: 设两个有序的子序列(相当于输入序列)放在同一序列中相邻的位置上:array[low..m],array[m + 1..high],先将它们合并到一个局部的暂存序列 temp (相当于输出序列) ...
- 1,JavaScript前世今生
JavaScript历史大概在1992年,一家称作Nombas的公司开始开发一种叫做C–(C-minus-minus,简称Cmm)的嵌入式脚本语言. Cmm背后的理念很简单:一个足够强大可以替代宏操作 ...
- vue2.4+vue-cli+webpack history模式打包后 刷新404
开启HTML5 History Mode后,尤其需要server端的支持,官方文档里就有介绍:(传送门: https://router.vuejs.org/zh-cn/essentials/histo ...
- CentOS7 离线安装MySQL
1.删除原有的mariadb 不然安装报错 rpm -qa|grep mariadb rpm -e --nodeps mariadb-libs 2. 下载RPM安装包 在https://dev.mys ...
- 如何用ABP框架快速完成项目 - 自动化测试 - 前端angular e2e protractor
要想快速完成一个项目, 自动化是很关键很有用的一块. 自动化测试比人工测试快很多. 特别是在回归测试中. 实践证明, 虽然投入了时间在写自动化测试代码上, 但是在回归测试中节省了大量的时间,同时及时发 ...