文本地址

点击关注微信公众号 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

 #!/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脚本实现的 函数差集查找的更多相关文章

  1. Shell脚本中使用function(函数)示例

    这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下   函数可以在shell script ...

  2. Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数

    在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh 方法二:   source ./subscript.sh 注意: 1.两个点之 ...

  3. shell 调用其他shell脚本中的变量、函数

    在Shell中要如何调用别的shell脚本,或别的脚本中的变量,函数呢? 方法一:   . ./subscript.sh  (两个点之间,有空格) 方法二:   source ./subscript. ...

  4. shell脚本之循环语句与函数

    shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...

  5. Shell学问: 调用脚本之间

    于Java,Python于,您可以使用import该方法使脚本或模块之间的呼叫,例如: >>> import math >>> math.sqrt(4) 2.0 在 ...

  6. Linux 服务器系统监控脚本 Shell【转】

    转自: Linux 服务器系统监控脚本 Shell - 今日头条(www.toutiao.com)http://www.toutiao.com/i6373134402163048961/ 本程序在Ce ...

  7. [拾 得] 一枚迷人的贝壳 SHELL / Linux | shell 脚本初步入门

    坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/   索引: 什么是shell shell的分类 shell脚本的执行方式   ...

  8. 什么是Shell、Shell脚本

    Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种 ...

  9. Shell记录-Shell脚本基础(一)

    Shell 注释: 你可以把注释,在你的脚本如下: #!/bin/bash # Author : Zara Ali # Copyright (c) Tutorialsyiibai.com # Scri ...

随机推荐

  1. L1与L2损失函数和正则化的区别

    本文翻译自文章:Differences between L1 and L2 as Loss Function and Regularization,如有翻译不当之处,欢迎拍砖,谢谢~   在机器学习实 ...

  2. 第一册:lesson twenty seven。

    原文 :Mrs.smith's living room. Mrs.smith's living room is large. There is a television in the room. Th ...

  3. Transact-SQL解析和基本的实用语句

    SQL语言 DDL(数据定义语句) DML(数据操作语句) DCL(数据控制语句) DDL 数据定义 操作对象 操作方式 创建 删除 修改 模式 CREATE SCHEMA DROP SCHEMA 表 ...

  4. C#自动关闭弹出提示框

    自动关闭弹出提示框(用一个小窗体显示提示信息):例如在一个form窗体中弹出自动关闭的提示框1.首先创建一个弹出提示信息的窗体 AutoCloseMassageBox,在里面拖一个lable控件,去掉 ...

  5. 模块热替换 HMR

    devserver:{hot:true},既及时更新代码,样式(需配合loader)变化,自动重编译,只适用于开发环境. 入口文件中,添加监视: + if (module.hot) {+ module ...

  6. VirtualBox VM启用3D加速

    默认情况下,是不支持 DX3D的, 我们运行 dxdiag 看到的情况如下: 安装时也提示需要安全模式下才能安装 VirtualBox 必须在Windows安全模式下才能成功安装3D加速驱动。 重启系 ...

  7. 【转】hibernate 延迟加载

    Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载.hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hiberna ...

  8. Java io 入门

    目录 前言 代码演练 字符流 FileReader,FileWriter: BufferedReader,BufferedWriter: InputStreamReader,OutputStreamW ...

  9. PHP常用函数总结(二)

    PHP常用函数总结 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2); //4.2 数字绝对值数字 2.ceil(): 进一法取整 echo ceil(9.999); // 10 ...

  10. cf55D. Beautiful numbers(数位dp)

    题意 题目链接 Sol 看到这种题就不难想到是数位dp了. 一个很显然的性质是一个数若能整除所有位数上的数,则一定能整除他们的lcm. 根据这个条件我们不难看出我们只需要记录每个数对所有数的lcm(也 ...