• python如何执行shell命令


      Jmeter是公司做接口测试的一个开源项目,今天在研究如何用python写个脚本去执行这个jmeter脚本,Jmeter有命令行模式和界面模式,设置好了环境之后,我用了最简单的一条命令做了测试:

    jmeter -n -t <testplan filename> -l <listener filename>

       比如:jmeter -n -t  ..../文件.jmx  -l  result.txt  这里忽略jmx文件的编写,这些是测试写好的,我只要调用命令去执行就好了,后期写个定时任务来完成。

       由于是用pycharm,配置好文件路径之后,我直接调用了os.system()来执行,不料却报错,后来用后来用subprocess.Popen也出现了错误,都提示jmeter命令找不到:

      

    import os
    
    import sys
    
    currpath = os.path.dirname(os.path.realpath(__file__))  # 当前文件目录
    sys.path.insert(0, currpath)
    # # print(currpath)
    JmxTemlFileName = r'/Users/admin/Documents/jmeter/stu_tea_test.jmx'  # 要执行的文件
    #
    JMETER_Home = r'''"/Users/admin/Downloads/apache-jmeter-5.1.1/bin/jmeter.bat"'''  # jmeter执行文件
    
    Jmeter_Out = currpath + '/result.txt'
    
    def runCmd(cmd):
        print(f"command={cmd}")
        os.system(cmd)
       ########### 下面使用subprocess.Popen来调用shell############
    # res = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stderr=subprocess.PIPE) # print('sys',sys.path) # stdoutinfo,stderrinfo = res.communicate() # print(f"stderrinfo={stderrinfo}") # print(f"stdoutinfo={stdoutinfo}") # print("returncode={0}".format(res.returncode))

    exec_str = f"jmeter -n -t {JmxTemlFileName} -l {Jmeter_Out}"

    if __name__ == '__main__':
    runCmd(exec_str)
     
    /usr/local/bin/python3.6 /Users/admin/PycharmProjects/untitled/t/jmeter_test/jmt_test.py
    command=jmeter -n -t /Users/admin/Documents/jmeter/stu_tea_test.jmx -l /Users/admin/PycharmProjects/untitled/t/jmeter_test/result.txt
    sh: jmeter: command not found

      明明我的环境都配置好了,为什么在终端运行的好好地,在pycharm却无法运行呢?在网上搜索了一下,发现应该还是环境问题,pycharm的环境和我们系统的环境还是不一样的

      于是我使用终端打开python3,运行了一下之前的文件,发现ok。其实也可以在pycharm中配置jmeter的环境变量也可以运行起来。

      总结:pycharm的环境变量是独立的,与系统的环境变量没有关系,当我们运行不起来时,要检查一下pycharm的环境变量是否有我们需要的bash命令。

  • 相关阅读:
    JQ购物车+1-1
    [转载]DATEDIFF() 函数返回两个日期之间的时间
    [转载]js获取当前页面url网址信息
    [转载]Request获取文件路径
    JQ页面跳转
    [转载]Sql Server 日期格式化函数
    [转载]jQuery的attr()与prop()的区别
    [转载]获取验证码60秒倒计时
    [转载]JQ键盘事件
    [转载]SQL常用语句
  • 原文地址:https://www.cnblogs.com/jimmyhe/p/10836005.html
Copyright © 2020-2023  润新知