首页 > 系统相关 >PowerShell系列九:文档和测试

PowerShell系列九:文档和测试

时间:2023-07-05 21:31:52浏览次数:37  
标签:Get Should Access 文档 user 测试 Path path PowerShell

文档

function Add-Access {
    <#
    .SYNOPSIS
    文件和目录添加访问权限
    
    .DESCRIPTION
    Icacls的包装,能够对目录和文件添加三种权限。
    读取,修改,完全控制
    
    .PARAMETER Path
    需要添加权限的{文件 | 目录}
    
    .PARAMETER User
    授予访问权限的用户
    
    .PARAMETER Access
    具体的访问权限枚举类型{"Read" | "Modify" | "Full"}。
    小技巧 -Access 空格,TAB键可以补全,在三个值之间切换
    
    .EXAMPLE
    Add-Access -Path c:\temp -User Bob -Access Read
    为用户Bob在C:\temp文件夹中添加只读权限

     .EXAMPLE
    Add-Access -Path c:\temp -User Bob -Access Modify
    为用户Bob在C:\temp文件夹中添加修改权限

    .NOTES
    General notes
    #>
具体代码在系列八,在函数中添加的文档.....
}

文档的用法,用的是. .源加载,会把函数保留在内存中。文档的具体用法请参考系列五。 文档.png

测试

PowerShell的测试框架是Pester.

BeforeAll {
    . $PSCommandPath.Replace('.Tests.ps1', '.ps1')
    $path = 'C:\users\sgq1219\temp'
    $user = 'Bob'
    mkdir $path
    "Hello world!" | out-file $path\hello.txt -Encoding utf8
    $base = Get-Access -Path $path
    
}

Describe "Test-Access" {
    
    It 'Test var'{
        'a' | Should -Be 'a'
    }

    It 'Test Get-Access'{
        $s = icacls $path
        $d = Get-Access $path
        $s | Should -Be $d
    }

    It 'Add-Access'{
        new-localuser -name $user -NoPassword
        Add-Access -Path $path -User $user -Access 'Read'
        [bool]$s = Get-Access -Path $path | Select-String -Pattern '(Bob):\(Oi\)\(Ci\)\(R\)' -Quiet
        $s | Should -Be $true
        
        Add-Access -Path $path -User $user -Access 'Modify'
        [bool]$s = Get-Access -Path $path | Select-String -Pattern '(Bob):\(Oi\)\(Ci\)\(M\)' -Quiet
        $s | Should -Be $true

        Add-Access -Path $path -User $user -Access 'Full'
        [bool]$s = Get-Access -Path $path | Select-String -Pattern '(Bob):\(Oi\)\(Ci\)\(F\)' -Quiet
        $s | Should -Be $true
    }

    It "Remove-Access"{
        Remove-Access -Path $path -User $User
        $s = Get-Access -Path $path | Select-String -Pattern '(Bob):\(Oi\)\(Ci\)' -Quiet >> out.txt
        $s = $s -as [bool]
        $s | Should -Be $false
    }

    It "Reset-Access"{
        Reset-Access -Path $Path
        $s = Get-Access -Path $Path
        $s | Should -Be $base
    }
}

AfterAll{
    remove-item -Path $path -Force -Recurse
    Remove-LocalUser -Name $user
}

test.png 基本上都是常规操作,如果用过其它语言的测试框架。步骤基本一样,比如python的pytest。 在顶上设置前置条件,中间执行函数测试,最后清理测试环境。 Python用assert,PowerShell用Should。但是原理都是一样的都是用的断言,执行一些操作,然后读取输出,或者查询信息,看和预期的是不是一样。

标签:Get,Should,Access,文档,user,测试,Path,path,PowerShell
From: https://blog.51cto.com/u_15652454/6635474

相关文章

  • C#中各单元测试框架比对
    下面是关于NUnit、xUnit.net、MSTest、SpecFlow和FluentAssertions等单元测试框架的优势和适用场景的简要比较:NUnit框架:优势:NUnit是一个历史悠久且成熟的框架,提供了广泛的功能和灵活性。它具有强大的断言库、丰富的扩展插件和广泛的社区支持。劣势:对初学者来说,可能存在一些学习曲线......
  • Jmeter学习之七_使用influxdb2.7和grafana10进行Jmeter测试结果展示的方法
    Jmeter学习之七_使用influxdb2.7和grafana10进行Jmeter测试结果展示的方法摘要前几天验证了线程组内的-监听器jp@gc相关的组件以及验证了server-agent的方式可以监控机器的性能表现.但是发现很多结果集是比较杂乱并且不太好查看的.然后查了些资料可以使用influxdb......
  • word文档的图片怎么保存到百度ueditor上
    ​ 当前功能基于PHP,其它语言流程大致相同 1.新增上传wordjson配置在ueditor\php\config.json中新增如下配置:     /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的......
  • 压力测试
    1.单台服务器,2u4g, 运行了php,nginx. 使用的thinkphp框架. 测试qps为40.  耗时为200ms2.压力测试工具使用k6, https://k6.io/使用腾讯云pts  https://cloud.tencent.com/document/product/1484/682073.根据内存和cpu修改phpfpm的并发线程, pm.ma......
  • word文档的图片怎么保存到百度编辑器上
    ​ 1.编辑器修改(可选)1.1在 ueditor/config.json 中添加代码块    /* 上传word配置 */    "wordActionName":"wordupload",/* 执行上传视频的action名称 */    "wordFieldName":"upfile",/* 提交的视频表单名称 */    "wordPathFormat":"/p......
  • python之x-mind中的测试用例内容转excel
    注意:导包xlwt生成的excel的文件后缀只能是xls,用xlsx打开文件会报错一、文件格式1.x-mind用例格式,若觉得字段太多可在代码中缩减 2.转后的excel格式 二、脚本(原贴:caituotuo.top/c2d10f21.html)修改最下面文件路径即可用importxlwtfromxmindparserimportxmind_to_dic......
  • word文档的图片怎么保存到百度Web编辑器上
    ​ 图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码目前限chrome浏览器使用首先以um-editor的二进制流保存为例:打开umeditor.js,找到UM.plugins['autoupload'],然后找到autoUploadHandler方法,注释掉其中的代码。加入下面的代码://判断剪......
  • 软件测试 | 如何使用代理配置快速定位接口测试脚本问题?
    更多软件测试学习资料!!!在调试接口用例过程中,如果响应结果和预期结果不一致,则需要检查请求信息。通过代理获取自动化测试中的请求响应信息,对比与正常请求响应的区别,就能够更直观的排查请求错误,相当于编写代码时的debug功能。实战练习在自动化测试中,不论是Java版本还是Python版......
  • word文档的图片怎么保存到umeditor上
    ​ 这种方法是servlet,编写好在web.xml里配置servlet-class和servlet-mapping即可使用后台(服务端)java服务代码:(上传至ROOT/lqxcPics文件夹下)<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@     page contentType="text/html;cha......
  • sqlsugar 使用汇总 (大数据写入、更新,大数据更新 ORM, db.Fastest文档)
     https://www.donet5.com/Home/Doc?typeId=2404  大数据写入、更新,大数据更新ORM,db.Fastest文档//插入100万10秒不到db.Fastest<RealmAuctionDatum>().BulkCopy(GetList());//性能比现有任何Bulkcopy都要快30%//如果数据库现有数据比较多出现比较慢,这个时候可以试试......