首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python模块引见- multi-mechanize 性能测试工具(1)

2013-09-13 
python模块介绍- multi-mechanize 性能测试工具(1)python模块介绍- multi-mechanize 性能测试工具2013-09-

python模块介绍- multi-mechanize 性能测试工具(1)
python模块介绍- multi-mechanize 性能测试工具

2013-09-13 磁针石

#承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319

#博客:http://blog.csdn.net/oychw

#版权所有,转载刊登请来函联系

# 深圳测试自动化python项目接单群113938272深圳广州软件测试开发 6089740

#深圳湖南人业务户外群 66250781武冈洞口城步新宁乡情群49494279

#参考资料:python手册

Multi-Mechanize是一个开源的性能和负载测试框架,它并发运行多个 Python 脚本对网站或者服务生成负载(组合事务)。

Multi-Mechanize最常用于web性能和可扩展性(scalability)测试,也适用于任何python可以访问的API。
               测试输出报告保存为HTML或JMeter的兼容的XML。主要特性:

    支持各种 HTTP methods 高级超链接和HTML表单支持支持 SSL自动处理 Cookies可设置HTTP头自动处理重定向支持代理支持 HTTP 认证


    安装

    使用标准的python安装方式。注意,需要安装matplotlib以支持作图,在centos6下面可以这样安装yum -y install python27-matplotlib。这里都以linux(centos)为例。

     

     

    快速入门:

    创建项目:# multimech-newproject my_project

    执行项目:# multimech-run my_project

     

     user_groups:  2

     threads: 6

     

    [================100%==================]  30s/30s  transactions: 119  timers:119  errors: 0

    waiting for all requests tofinish...

     

     

    analyzing results...

     

    transactions: 125

    errors: 0

     

    test start: 2013-09-13 11:47:47

    test finish: 2013-09-13 11:48:16

     

    created:./my_project/results/results_2013.09.13_11.47.46/results.html

     

    done.

    至此,我们已经完成了一个简单的性能测试。

    查看性能测试结果:./my_project/results/results_2013.09.13_11.47.46/results.html

    Performance Results Report

    Summary

    transactions: 125
    errors: 0
    run time: 30 secs
    rampup: 0 secs

    test start: 2013-09-1311:47:47
    test finish: 2013-09-1311:48:16

    time-series interval: 10secs


    workload configuration:

    group name

    threads

    script name

    user_group-1

    3

    v_user.py

    user_group-2

    3

    v_user.py

    All Transactions

    Transaction Response Summary (secs)

    count

    min

    avg

    80pct

    90pct

    95pct

    max

    stdev

    125

    1.021

    1.499

    1.796

    1.890

    1.972

    2.002

    0.282

    Interval Details (secs)

    interval

    count

    rate

    min

    avg

    80pct

    90pct

    95pct

    max

    stdev

    1

    43

    4.30

    1.021

    1.462

    1.688

    1.841

    1.897

    2.002

    0.263

    2

    39

    3.90

    1.026

    1.543

    1.830

    1.934

    1.976

    1.986

    0.290

    3

    37

    3.70

    1.025

    1.495

    1.806

    1.964

    1.985

    1.988

    0.295

    GraphsResponse Time: 10 sectime-series

    Response Time: raw data (allpoints)

    Throughput: 5 sec time-series


    Custom Timer: Example_Timer

    Timer Summary (secs)

    count

    min

    avg

    80pct

    90pct

    95pct

    max

    stdev

    119

    1.020

    1.497

    1.794

    1.889

    1.970

    2.000

    0.281

    Interval Details (secs)

    interval

    count

    rate

    min

    avg

    80pct

    90pct

    95pct

    max

    stdev

    1

    43

    4.30

    1.020

    1.461

    1.686

    1.839

    1.895

    2.000

    0.262

    2

    39

    3.90

    1.025

    1.542

    1.828

    1.932

    1.975

    1.984

    0.289

    3

    37

    3.70

    1.024

    1.493

    1.804

    1.962

    1.983

    1.986

    0.295

    GraphsResponse Time: 10 sectime-series

    Response Time: raw data (allpoints)

    Throughput: 10 sec time-series


     

     

    目录结构:

     

    每个测试项目包含以下内容:

            config.cfg的配置文件。用于设定测试选项。
            test_scripts/虚拟用户脚本的目录。在这里添加您的测试脚本。
            results/:结果存储目录。对于每个测试都声称一个时间戳目录,里面包含结果的报告。

    multimech-newproject,默认生成一个随机数的脚本。脚本如下:

    # cat v_user.py

     

    import random

    import time

     

     

    class Transaction(object):

        def__init__(self):

           pass

     

        defrun(self):

            r= random.uniform(1, 2)

           time.sleep(r)

           self.custom_timers['Example_Timer'] = r

     

     

    if __name__ == '__main__':

        trans= Transaction()

       trans.run()

        printtrans.custom_timers



     

     

     

    参考资料:

    http://testutils.org/multi-mechanize/

     

     

热点排行