zoukankan      html  css  js  c++  java
  • 性能测试培训: 监控CPU之python

    性能测试培训: 监控CPU之python

         作为一名测试开发工程师,开发脚本是为了测试服务的,我们在手里没有性能监控工具的情况下,我们会自己来进行开发脚本完成监控任务。下面是python监控cpu

    '''

    Created on 2015-10-20

    @author:laoli

    '''

    #from sshExpert import sshExpert

    import time

    import os,sys,platform

    class cpuMonitor:

        def __init__(self):

            return

        def getCpu(self):

            sysName = platform.system()

            if sysName == 'Windows':

                return self.getWinCpu()

            else:

                return self.getLinuxCpu()

            return

        def getWinCpu(self):

            import win32com.client

            com=win32com.client.Dispatch("WbemScripting.SWbemRefresher")

            obj=win32com.client.GetObject("winmgmts:\rootcimv2")

            

            processorItems=com.AddEnum(obj,"Win32_PerfFormattedData_PerfOS_Processor").objectSet

               

            while(1):

                com.Refresh()

                for item in processorItems:

                    if item.Name == '_Total':

                    #print item.Name,"= ",

                        #print 'total=',item.PercentProcessorTime,"%"

                        return item.PercentProcessorTime

                    #time.sleep(5)

                break

         

        def _read_cpu_usage(self):  

            """Read the current system cpu usage from /proc/stat.""" 

            try:  

                fd = open("/proc/stat", 'r')  

                lines = fd.readlines()  

            finally:  

                if fd:  

                    fd.close()  

            for line in lines:  

                l = line.split()  

                if len(l) < 5:  

                    continue 

                if l[0].startswith('cpu'):  

                    return l  

            return []  

         

        def getLinuxCpu(self):  

            """ 

            get cpu avg used by percent 

            """ 

            cpustr=self._read_cpu_usage()  

            if not cpustr:  

                return 0 

            #cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100  

            usni1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])  

            usn1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])  

            #usni1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[4])  

            # self.sleep=2  

            time.sleep(self.sleep)  

            cpustr=self._read_cpu_usage()  

            if not cpustr:  

                return 0 

            usni2=long(cpustr[1])+long(cpustr[2])+float(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])  

            usn2=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])  

            cpuper=(usn2-usn1)/(usni2-usni1)  

            return 100*cpuper

    def main():

        aaa = cpuMonitor()

        print aaa.getCpu()

    if __name__ == '__main__':

        main()

  • 相关阅读:
    python字典
    python元组
    python list列表
    deepin常用操作
    Be a child.Be a man...
    “夹心阶层”——面对高昂的房价,要面对现实,广州,除了劳动力便宜,什么都贵。
    男人一生中16件事情(转载)
    被老板臭骂了一顿,但受益匪浅。
    陪伴
    高品质生活
  • 原文地址:https://www.cnblogs.com/poptest/p/4920516.html
Copyright © 2011-2022 走看看