注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Fly to the Sky!

很多人因为寂寞而错爱一个人,更多人因为错爱一个人而寂寞一生。

 
 
 

日志

 
 

Grinder 的脚本运行[转]  

2009-07-22 15:10:33|  分类: grinder |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

参考网址:http://sandybuster.javaeye.com/blog/304934

 

关键字: grinder

Grinder运行脚本 我所了解的有三种

1. 单个运行

这个适合在调试,测试代码的时候用,方便,快捷。

grinder.properties  文件如下

Properties代码 Grinder 的脚本运行[转] - kuku - Fly to the Sky!

  1. **grinder.properties**   
  2.   #   
  3.   # helloworld grinder.properties   
  4.   #   
  5.   
  6.   #以下为你的环境配置   
  7.   grinder.jvm.arguments=-Dpython.home=c::/devTools/jython   
  8.   grinder.jvm.arguments=-Dpython.path=c:/grinder/bin   
  9.   grinder.jvm.arguments=-Dpython.verbose=debug   
  10.   
  11.   grinder.processes=1  
  12.   grinder.threads=1  
  13.   grinder.runs=1  
  14.   
  15.   #grinder.useConsole=false   
  16.   
  17.   grinder.logDirectory=log   
  18.   grinder.numberOfOldLogs=0  
  19.   
  20.   #grinder.initialSleepTime=500  
  21.   #grinder.sleepTimeFactor=0.01  
  22.   #grinder.sleepTimeVariation=0.005  
  23.      
  24.   #sequence.py 就是你要运行的单个的脚步   
  25.   grinder.script=sequence.py   
  26.   grinder.useConsole = true  

 

 2.Run test scripts in sequence(按顺序运行脚本)

这个方法适合完成一个project后,一起运行。

grinder.properties  文件如下

Properties代码 Grinder 的脚本运行[转] - kuku - Fly to the Sky!

  1. **grinder.properties**   
  2.   #   
  3.   # helloworld grinder.properties   
  4.   #   
  5.   
  6.   grinder.jvm.arguments=-Dpython.home=c::/devTools/jython   
  7.   grinder.jvm.arguments=-Dpython.path=c:/grinder/bin   
  8.   grinder.jvm.arguments=-Dpython.verbose=debug   
  9.   
  10.   grinder.processes=1  
  11.   grinder.threads=1  
  12.   grinder.runs=1  
  13.   
  14.   #grinder.useConsole=false   
  15.   
  16.   grinder.logDirectory=log   
  17.   grinder.numberOfOldLogs=0  
  18.   
  19.   #grinder.initialSleepTime=500  
  20.   #grinder.sleepTimeFactor=0.01  
  21.   #grinder.sleepTimeVariation=0.005  
  22.      
  23.  #下面2个就是你要运行的脚步   
  24.   script1=ebayUSForumsSimpleSearch   
  25.   script2=ebayUSForumsAdvancedSearch   
  26.      
  27.   #mian.py 是控制顺序运行的脚步的脚步   
  28.   grinder.script=main.py   
  29.   grinder.useConsole = true  

 

 main.py

Python代码 Grinder 的脚本运行[转] - kuku - Fly to the Sky!

  1. # Run test scripts in sequence   
  2. #   
  3. # Scripts are defined in Python modules (helloworld.py, goodbye.py)   
  4. # specified in grinder.properties:   
  5. #   
  6. #   script1=helloworld   
  7. #   script2=goodbye   
  8.   
  9. from net.grinder.script.Grinder import grinder   
  10.   
  11. from java.util import TreeMap   
  12.   
  13. # TreeMap is the simplest way to sort a Java map.   
  14. scripts = TreeMap(grinder.properties.getPropertySubset("script"))   
  15.   
  16. # Ensure modules are initialised in the process thread.   
  17. for module in scripts.values(): exec("import %s" % module)   
  18.   
  19. def createTestRunner(module):   
  20.     exec("x = %s.TestRunner()" % module)   
  21.     return x   
  22.   
  23. class TestRunner:   
  24.     def __init__(self):   
  25.         self.testRunners = [createTestRunner(m) for m in scripts.values()]   
  26.   
  27.     # This method is called for every run.   
  28.     def __call__(self):   
  29.         for testRunner in self.testRunners: testRunner()  

 

 这样的话,就可以顺序运行了。

 

3.Run test scripts in parallel(同时并行运行脚本)

个人认为这个方法有很多优点,可以更有效的进行压力测试

grinder.properties  文件如下

Properties代码 Grinder 的脚本运行[转] - kuku - Fly to the Sky!

  1. **grinder.properties**   
  2.   #   
  3.   # helloworld grinder.properties   
  4.   #   
  5.   
  6.   grinder.jvm.arguments=-Dpython.home=c::/devTools/jython   
  7.   grinder.jvm.arguments=-Dpython.path=c:/grinder/bin   
  8.   grinder.jvm.arguments=-Dpython.verbose=debug   
  9.   
  10.   grinder.processes=1  
  11.   #如果你要同时运行几个脚本,那么下面的grinder.threads的值应该>=脚本数。   
  12.   grinder.threads=4  
  13.   grinder.runs=1  
  14.   
  15.   #grinder.useConsole=false   
  16.   
  17.   grinder.logDirectory=log   
  18.   grinder.numberOfOldLogs=0  
  19.   
  20.   #grinder.initialSleepTime=500  
  21.   #grinder.sleepTimeFactor=0.01  
  22.   #grinder.sleepTimeVariation=0.005  
  23.      
  24.   grinder.script=main.py   
  25.   grinder.useConsole = true  

 

 main.py

 

Python代码 Grinder 的脚本运行[转] - kuku - Fly to the Sky!

  1. from net.grinder.script.Grinder import grinder   
  2.   
  3. scripts = ["helloworld", "good"]   
  4. #If you want to add new scripts  you have two ways.   
  5. # 1.you can insert directly such as scripts = ["helloworld", "good"]   
  6. # 2.or you can do like this: scripts.append('xxx')   
  7.   
  8.   
  9. # Ensure modules are initialised in the process thread.   
  10. for script in scripts: exec("import %s" % script)   
  11. # import the scripts files such as helloworld.py good.py   
  12.   
  13. def createTestRunner(script):   
  14.     exec("x = %s.TestRunner()" % script)   
  15.     return x   
  16.   
  17. class TestRunner:   
  18.     def __init__(self):   
  19.         #script = scripts[grinder.threadID % len(scripts)]   
  20.         # it's ok on Grinder 3.0.1, but is not ok on Grinder 3.1   
  21.         script = scripts[grinder.getThreadNumber() % len(scripts)]   
  22.         #it's ok on 3.1 but not 3.0.1   
  23.     #script = scripts[grinder.threadNumber   % len(scripts)]   
  24.         #it's ok on 3.1 but not 3.0.1   
  25.     # If you set grinder.threads=n(in grinder.properties), the the ID is 1,2,3.   
  26.     # If ID=1, then 1%len(scripts)==1( there are 3 elements in scripts, so len(scripts) is 3, so 1%3==1)   
  27.     # so script=scripts[1], so script='ebayUSForumsGuestViewForum'   
  28.     # so thread 1 run  ebayUSForumsGuestViewForum.py   
  29.   
  30.     # If ID=2, then 2%len(scripts)==2( there are 3 elements in scripts, so len(scripts) is 3, so 2%3==2)   
  31.     # so script=scripts[2], so script='ebayUSForumsGuestViewThread'   
  32.     # so thread 2 run  ebayUSForumsGuestViewThread.py   
  33.   
  34.     # If ID=3, then 3%len(scripts)==0( there are 3 elements in scripts, so len(scripts) is 3, so 3%3==0)   
  35.     # so script=scripts[0], so script='ebayUSForumsAdvancedSearch'   
  36.     # so thread 3 run  ebayUSForumsAdvancedSearch.py   
  37.   
  38.         self.testRunner = createTestRunner(script)   
  39.   
  40.     # This method is called for every run.   
  41.     def __call__(self):   
  42.         self.testRunner()  

 Ok,到此为止,主要是给自己的看的,如果你有需要可以看,有问题可以问我.

  评论这张
 
阅读(907)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018