zoukankan      html  css  js  c++  java
  • python mongodb压力测试脚本

    $ pip install pymongo
    

      

     1 #!/usr/bin/env python
     2 #coding=utf-8
     3 #Author: Ca0Gu0
     4 
     5 from pymongo import MongoClient
     6 import datetime,time
     7 
     8 
     9 
    10 class MongCli(object):
    11     
    12 
    13     def __init__(self, host="127.0.0.1", port=27017, user='pytest', passwd ='pytest123', database="pytest"):
    14 
    15         self.host = host
    16         self.port = port
    17         self.user = user
    18         self.passwd = passwd
    19         
    20         self.database = database
    21 
    22         client = MongoClient(self.host, self.port)
    23         client.the_database.authenticate(self.user, self.passwd, source=self.database)
    24                 
    25         self.db=client[self.database]
    26         self.posts = self.db.posts
    27 
    28     def t(self, args1=None, args2=None):
    29         
    30         c=datetime.datetime.now()
    31         print "%s|%s... |%s|Row:%s| %s" %(self.host, args1, args2, self.posts.count(), c.strftime("%Y-%m-%d %H:%M:%S"))
    32         return c
    33     
    34     
    35     
    36     def write(self,number=100):
    37         start = self.t(args1="start", args2="write")
    38         for i in range(number):
    39             post = {"author": "Mike"+str(i),
    40                      "text": "My first blog post!"+str(i),
    41                      "tags": ["mongodb", "python", "pymongo"],
    42                      "date": datetime.datetime.utcnow()}
    43             
    44          
    45             post_id = self.posts.insert_one(post).inserted_id
    46         end = self.t(args1="end", args2="write")
    47         print "Total write runtime: %ss" %str((end-start).seconds)
    48     
    49     def read(self):
    50         start = self.t(args1="start", args2="read")
    51         output = open("output.txt", 'w')
    52         for post in self.posts.find():
    53             try:
    54                 output.write(str(post)+"
    ")
    55             except Exception,e:
    56                 print e
    57         output.close()
    58         end = self.t(args1="end", args2="read")
    59         print "Total read runtime: %ss" %str((end-start).seconds)
    60         print "----------Split--------"
    61         
    62         
    63 if __name__ == "__main__":
    64     f = MongCli(host="127.0.0.1", port=27017, user='admin', passwd ='admin', database="admin")
    65     f.write(20000)
    66     f.read()

  • 相关阅读:
    一个网络狂人的财富轨迹
    婚姻的精髓
    软件史上最伟大的十大程序员
    由瓜子理论引出的人力资源管理启示
    感情裂缝的"维修工" 在生活抛锚的地方起航
    寻找更新过的数据
    asp.net mvc中TempData和ViewData的区别
    SQL Server Backup
    VS字符串时间转换用法
    SQL Server 根据动态条件insert,update语句
  • 原文地址:https://www.cnblogs.com/caoguo/p/4601163.html
Copyright © 2011-2022 走看看