about multi-mechanize
This tool generates traffic from your python scripts.
You could generate a wide variety of traffic with multi-mechanize and python scripts.
| 
[root@f18 ~]# cat /etc/fedora-release ;uname -ri 
Fedora release 18 (Spherical Cow) 
3.9.4-200.fc18.x86_64 x86_64 | 
[ installation ]
| 
[root@f18 ~]# yum install -y  python-pip python-matplotlib 
Downloading/unpacking multi-mechanize 
  Downloading multi-mechanize-1.2.0.tar.gz 
  Running setup.py egg_info for package multi-mechanize 
Downloading/unpacking Mechanize (from multi-mechanize) 
  Downloading mechanize-0.2.5.tar.gz (383kB): 383kB downloaded 
  Running setup.py egg_info for package Mechanize 
Installing collected packages: multi-mechanize, Mechanize 
  Running setup.py install for multi-mechanize 
    Installing multimech-run script to /usr/bin 
    Installing multimech-newproject script to /usr/bin 
    Installing multimech-gridgui script to /usr/bin 
  Running setup.py install for Mechanize 
Successfully installed multi-mechanize Mechanize 
Cleaning up... | 
[ usage ]
at first , create a project
| 
[root@f18 hattori]# multimech-newproject my_project | 
directory “my_project” will be created at your current working directory.
| 
[root@f18 hattori]# ls my_project/ 
config.cfg  test_scripts | 
config.cfg : load , user definition file
test_scripts : python scripts for testing
| 
[root@f18 hattori]# cat /home/hattori/my_project/config.cfg  
[global] 
run_time = 30 
rampup = 0 
results_ts_interval = 10 
progress_bar = on 
console_logging = off 
xml_report = off 
[user_group-1] 
threads = 3 
script = v_user.py 
[user_group-2] 
threads = 3 
script = v_user.py 
[root@f18 hattori]# ls /home/hattori/my_project/ 
config.cfg    results/      test_scripts/  
[root@f18 hattori]# ls /home/hattori/my_project/test_scripts/ 
v_user.py  v_user.pyc | 
run multi-mechnize by using sample scripts.
run
| 
[root@f18 hattori]# multimech-run my_project 
  user_groups:  2 
  threads: 6 
[                  0%                  ]  0s/30s   transactions: 0  timers: 0  e[=                 3%                  ]  1s/30s   transactions: 0  timers: 0  e[===               7%                  ]  2s/30s   transactions: 6  timers: 6  e[====             10%                  ]  3s/30s   transactions: 7  timers: 7  e[=====            13%                  ]  4s/30s   transactions: 12  timers: 12 [======           17%                  ]  5s/30s   transactions: 17  timers: 17 [========         20%                  ]  6s/30s   transactions: 20  timers: 20 [=========        23%                  ]  7s/30s   transactions: 24  timers: 24 [==========       27%                  ]  8s/30s   transactions: 29  timers: 29 [================100%==================]  30s/30s   transactions: 112  timers: 112  errors: 0 
waiting for all requests to finish... 
analyzing results... 
transactions: 118 
errors: 0 
test start: 2013-06-07 02:06:46 
test finish: 2013-06-07 02:07:15 
created: ./my_project/results/results_2013.06.07_02.06.45/results.html 
done. | 
view a result file 
| 
[root@f18 hattori]# firefox /home/hattori/my_project/results/results_2013.06.07_02.06.45/results.html  | 
generate HTTP traffic
create a project
| 
[root@f18 hattori]# multimech-newproject http_load 
[root@f18 hattori]# ls http_load/* 
http_load/config.cfg 
http_load/test_scripts: 
v_user.py | 
make a python script for generating HTTP traffic
| 
[root@f18 hattori]# cat /home/hattori/http_load/test_scripts/http_get.py 
import mechanize 
import time 
class Transaction(object): 
    def run(self): 
        br = mechanize.Browser() 
        br.set_handle_robots(False) 
        start_timer = time.time() 
        resp = br.open('http://127.0.0.1/') 
        resp.read() 
        latency = time.time() - start_timer 
        self.custom_timers['Example_Homepage'] = latency 
        assert (resp.code == 200) 
        assert ('Example Web Page' in resp.get_data()) | 
load profile
| 
[root@f18 hattori]# cat /home/hattori/http_load/config.cfg  
[global] 
run_time = 30 
rampup = 0 
results_ts_interval = 10 
progress_bar = off 
console_logging = off 
xml_report = off 
[user_group-1] 
threads = 100 
script = http_get.py | 
run 
| 
[root@f18 hattori]# multimech-run http_load 
  user_groups:  1 
  threads: 100 
analyzing results... 
transactions: 1467 
errors: 1467 
test start: 2013-06-07 02:27:13 
test finish: 2013-06-07 02:27:43 
created: ./http_load/results/results_2013.06.07_02.27.13/results.html 
done. | 
view the result file.
| 
[root@f18 home]# firefox /home/hattori/http_load/results/results_2013.06.07_02.27.13/results.html | 
great tool !!!

No comments:
Post a Comment
Note: Only a member of this blog may post a comment.