Loadrunner虽好,但,它不是免费的,使用它就是行走在某种边缘;而且动不动就2G的安装包,实在难于下载和安装。

为何不用python实现一个性能测试的脚本呢?
从监控主机的CPU、内存、网络和磁盘开始,
到使用unittest的单元测试用例组建测试场景。
再到发起并发测试,获得监控数据;
最后生成性能表现图,从而分析应用的表现。
python都可以做到。
使用到了sar,iostat和脚本进行监控 。

#!/usr/bin/env python
# coding:utf-8
import paramiko
import urunite_test_py
import unittest
import numpy as np
import matplotlib.pyplot as plt
import pylab
import matplotlib.dates as mdates
from numpy import datetime64
from itertools import islice
import re,os,time,shutil,logging
import threading
import datetimelogging.basicConfig(level=logging.INFO,format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',datefmt='%a, %d %b %Y %H:%M:%S',filename='parallel_test.log',filemode='w')host1={"ip":"192.168.1.101",'port':22,"username":"app","passwd":"urpwd"}
host2={"ip":"192.1689.1.102",'port':22,"username":"app","passwd":"pwd"}
#将host添加到HOST中进行监控
HOST=[host1,host2]data_path=os.path.join(os.getcwd(),"data")
pic_path=os.path.join(os.getcwd(),"picture")#ssh,返回远程命令的输出结果。
def ssh2(host,cmd):result=[]    try:ssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())logging.info("connect to "+host['ip']+",user "+host['username']+",ssh")ssh.connect(host['ip'],int(host['port']),host['username'],host['passwd'],timeout=5)   for m in cmd:logging.info(m)stdin,stdout,stderr = ssh.exec_command(m)out = stdout.readlines()#return outfor o in out:logging.info(o)result.append(o)ssh.close()except Exception,e:logging.DEBUG(e)return out    #sftp,默认从对端home目录获取,放到本地当前目录
def sftpfile(host,getfiles,putfiles):try:logging.info("connnect to "+host['ip']+",user "+host['username']+",sftp")t=paramiko.Transport((host['ip'],int(host['port'])))t.connect(username=host['username'],password=host['passwd'])     sftp =paramiko.SFTPClient.from_transport(t)if getfiles<>None:for file in getfiles:logging.info("get "+file)file=file.replace("\n", "")sftp.get(file,file)if putfiles<>None:for file in putfiles:file=file.replace("\n", "")logging.info("put "+file)sftp.put(file,file)     t.close(); except:     import traceback     traceback.print_exc()     try:         t.close()     except Exception,e:logging.DEBUG(e)

利用Python进行性能测试(上)相关推荐

  1. 利用python+selenium带上cookies自动登录bilibili

    利用python+selenium带上cookies自动登录bilibili 环境 selenium的安装 思路 第一部分:手动登录,保存cookies 第二部分:读取cookies自动登录 环境 环 ...

  2. 利用python从网络上爬取图片_一篇文章教会你利用Python网络爬虫抓取王者荣耀图片...

    点击上方"IT共享之家",进行关注 回复"资料"可获赠Python学习福利 [一.项目背景] 王者荣耀作为当下最火的游戏之一,里面的人物信息更是惟妙惟肖,但受到 ...

  3. 利用Python实现图片上传七牛云,从此告别繁琐

    前言 欢迎大家来我的博客一起学习: http://hackergu.com 写博客的时候经常要用到七牛云存储图片,但是每次点开官网上传又显得过于麻烦,所以用python写了如下脚本用于图片上传. qi ...

  4. 利用 Python 手把手带上实现冒泡排序

    前言 想要学好计算机,数据结构和算法几乎是无法回避的课题,因为我们学习编程第一节课老师都会跟你说:程序 = 数据结构 + 算法. 所以说这必学的编程基础知识. 在数据结构和算法这门课程中排序与查找算法 ...

  5. 如何利用python破解qq_如何利用Python爬取QQ趣图

    人生苦短,我用python:作为一种"胶水语言",python为无数码农带来了便利:同时,越来越多的python工程师被标榜为"高薪党":"全民pyt ...

  6. 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操

    在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...

  7. 在Linux上利用python获取本机ip

    下面介绍在Linux上利用python获取本机ip的方法. 经过网上调查, 发现大致有两种方法, 一种是调用shell脚本,另一种是利用python中的socket等模块来得到,下面是这两种方法的源码 ...

  8. python整理excel数据-利用python整理需要的excel报表(上)

    一.背景 目前公司的项目管理采用开源项目redmine,对于redmine本文不多做介绍,有兴趣的可以自行百度了解下. 在每周周会汇报任务进度时,需要我们准备各组的项目进度,按照一定的excel模板整 ...

  9. Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略

    Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名.合并两个不同路径下图片文件名等目录/路径案例.正确加载图片路径)之详细攻略 目录 利用python ...

最新文章

  1. 陶哲轩实分析 习题 13.4.6
  2. c++向量和数组的区别_数学学习如此容易:用Python计算特征值和特征向量
  3. CentOS7安装iptables防火墙
  4. 组会PPT20200522《Summary of Study and Research from May 8 to May 21》
  5. 自动开料机器人_工业4.0智能家具无人化生产线 自动化无人化大势所趋
  6. python无法安装第三方库read time out_pip 或 conda 安装第三方库超时(Read timed out)问题...
  7. Hyperledger02
  8. wp-autoblog_AutoBlog简介
  9. 天正自定义填充图案怎么添加_自定义AutoCAD填充图案教程 - CAD自学网
  10. R语言 —— 包(package)的下载和使用
  11. WebRTC系列补充--native音量控制level
  12. Kaggle时间序列(Time Series)教程 3-季节性(Seasonality)
  13. 有内鬼,终止换脸!用Landmarks Debug找出不老实的脸。
  14. 微信如何定时发朋友圈?一招教你解决
  15. 1005:地球人口承载力估计
  16. 2012网站服务器目录磁盘满了,服务器磁盘异常爆满的原因及解决方法
  17. 【从零开始学习Oracle数据库】(3)函数与子查询和连接查询
  18. 一篇文章搞定嵌入式看门狗watch dog概述与示例代码
  19. “b数”(B树)是个怎么回事
  20. unity 如何切换输入系统(Input System)

热门文章

  1. 紫光SSD评测:国产颗粒可与洋品牌一战
  2. 程序员小心,中了这4条,别人就很难和你沟通
  3. Java内功修炼系列:代理模式及动态代理
  4. 计算机在现代工作中的应用,浅论计算机在现代管理中应用
  5. 智联卓聘IM演进过程
  6. MATLAB运用——计算三维物体的质心(水花号)
  7. business,firm, company, corporation, enterprise等区别CentOS(Community Enterprise Operating System)想到
  8. ThoughtWorks-2021上半年,请24期技术雷达正式发布!
  9. 零售行业数据分析运用
  10. 【Python基础】字典dict和集合set