• 0
  • 0
分享
  • 小白也能操作Linux,简单的shell脚本编写边学边用——软件测试圈
  • 曼倩诙谐 2021-12-22 09:30:52 字数 1503 阅读 796 收藏 0

  在刚入行软件测试的时候,shell脚本也就是了解这个概念,那会儿也基本用不到这个技能,工作做得最多的就是点点点。

  现在由于所处行业的关系吧,经常要在linux服务器做些常见操作。遇到不会的就百度,也慢慢的学了一些之前没有接触过的linux 命令,也开始看shell脚本的书籍,看过没有实战没有练习,也就存在一个概念。

  Linux命令用多了,自然而然想到了shell脚本,想要用它来解决一些工作中的重复操作,于是开始边学边用,效果还不错。

  工作场景:

  我们测试的时候会把软件包拷贝到管理平台的软件仓库中,如果仓库中有,就要覆盖掉。

  手动操作的流程是这样的:

  wget【url】:下载软件包,压缩包格式的;

  tar -zxvf xxx.tar.gz:解压软件包到当前文件;

  进入到解压好的文件中,里面有2个文件夹,然后依次拷贝,这里使用scp命令,-r是递归目录的意思。scp -r xxx/  /opt/xxx

  这里为啥没用cp呢?因为我发现cp覆盖时,老是提示我,需要我手动确认,太繁琐了。所以这里使用了scp命令,这个命令经常用于两个服务器之间远程拷贝。

  这个软件包更换流程,做的次数多了也熟练和熟悉了,突然有一天,要告诉一个不懂linux命令的人,让他去完成软件包更换工作。这就有点难上加难了。想到了自己也经常做这个操作,也不想对别人进行小白教学,那就编写个简单的shell脚本吧。

  设计思路是这个的:

#!/bin/bash  
#获取当前时间  
cur_date=`date +%Y%m%d-%H-%M`  
tmp_dir=service_$cur_date  
#根据时间,创建文件夹  
mkdir $tmp_dir  
cd $tmp_dir  
echo "进入目录:"$tmp_dir  
#下载  
echo "下载文件到"$tmp_dir  
wget $1  
# 解压  
echo "正在解压文件"  
sleep 3  
tar -zxvf *.tar.gz  
echo "解压完成,开始删除压缩包"  
rm -rf *.tar.gz  
for i in `ls`  
do  
        echo "软件包的文件夹名:"$i  
        tmp_dir_package=$i   
done  
cd $tmp_dir_package  
echo "进入包目录:"$tmp_dir_package  
echo "开始拷贝软件包到ole软件仓库/opt/"  
scp -r package/ /opt/  
scp -r repository/ /opt/  
echo "软件包拷贝完成,别忘了去sole软件仓库刷新啊!!!"  
sleep 3

  1、将下载地址作为位置参数传入脚本

  2、根据当前时间,具体到分钟吧,在脚本所在文件创建一个文件夹,名称就用上那个时间,避2免文件夹重名啥的

  3、进入这个文件夹,下载压缩包

  4、解压压缩包,然后删除压缩包,为下一步做准备

  5、解压后就一个文件夹,我们获取一下这个文件夹名字,然后进去

  6、拷贝文件,完成。

  具体实现如下:

  好了一个简单的脚本写好了,脚本知识点:

  1、反引号的使用,反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量

  2、位置参数的使用

  3、创建文件夹、删除、解压、echo、sleep

  4、scp拷贝,远程拷贝

  5、for循环

  6、wget 下载



作者:书包   

来源:http://www.51testing.com/html/67/n-4480467.html



2021 问卷礼物图.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 接着测试设计的思路来讲讲一、如何运用测试设计的方法   1、测试设计方法有很多,主要有以下几种:    2、不同阶段如何运用的测试设计方法   在项目或是产品的测试过程中,在不同的测试阶段,存在不同的测试方法。以开发阶段划分,测试过程可以分为单元测试、集成测试、系统测试和验收测试。Ø 单元测试     单元测试是对程序模块进行正确性的检验。如果单元测试目标是达到100%判定覆盖率,那测试设计方法就要采用判定逻辑的逻辑覆盖方法,通过分析和设计,达到...
            1 2 1487
            分享
          •   如果你在JMeter脚本中看到这样一些符号:(.*?)(\d+),你是否会以为程序出现了乱码?拆开来看每个符号似乎都有固定的含义,组合在一起竟成了令人费解的天书。这些神秘符号究竟蕴含了哪些强大的功能,下面让我们一起来揭开它的面纱。  一、什么是正则表达式  上文提到的特定符号的组合叫做正则表达式,在JMeter工具中用来表达对字符串的一种逻辑过滤。正则表达式的功能分为“提取”和“匹配”,前者用来从字符串中获取我们想要的部分,后者用来将提取到的字符串和一个给定的字符串做比对。正则表达式的好处自然不言而喻,它实现了通过极其简单的方式达到字符串的复杂控制,同时兼具了灵活性与逻辑性。  二、如何添...
            13 13 1278
            分享
          • 安装插件JunitGeneratorfile-setting-plugins下载Junit的相关jar包链接https://github.com/junit-team/junit4/wiki/Download-and-Install分别点击上面两个链接,然后选择下面第一项jar。(第二项是帮助文档,第三项是Maven配置文件,第四项是源码,有需要可下载。)将下载的jar包添加到项目File -> Project Structure->Modules-> Dependencies找到刚刚的下载目录,添加jar包添加完成后,需要有以下俩包:实例建立和src文件夹同目录的test文...
            0 0 1518
            分享
          • 自动化什么对于初学者来说,重要的是要记住自动化测试并不是适用于所有测试场景的灵丹妙药。但是,通过注意下面描述的以下几点,可以选择要自动化和不自动化的内容:成本假设你有频繁的发布进入。在这种情况下,首先自动化冒烟测试和回归测试更为重要,因为这将有助于加快测试周期,缩短上市时间,减少人工干预。优先级这很重要,因为测试人员可以根据业务需求和复杂性将首先需要自动化支持的功能与其他功能分开。业务优先级较低的区域可以从自动化范围中删除。什么可以自动化这个因素取决于许多领域,比如可用性方面,这些领域不能自动化,其他方面,比如工具依赖性,也会限制自动化领域。此外,应优先考虑支持多浏览器的应用程序等其他方面的自...
            1 1 1611
            分享
          •   随着科技时代的进步和智能手机的普及,现代人离不开手机已经是常态化,一旦手机不在身边便会失去安全感。提到安全一词,我们在使用手机app软件时,安全至关重要,软件里包含的个人信息、资料等等都和安全挂钩,那么在软件测试中移动app安全测试应该怎么做呢?  1、代码审计  通过代码走读的方式测试源代码的安全性,常用的代码检查方法有数据流、控制流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。静态代码检查方法主要是在编码阶段进行测试,尽可能早地发现安全性问题。  2、动态渗透测试  需要借助工具或手工来模拟的输入方式,对应用软件进行安全性测试,进而发现系统中的安全性问题。该...
            0 0 566
            分享
      • 51testing软件测试圈微信