1. 程式人生 > 其它 >python批量獲取mongodb某集合某欄位userId用於效能測試

python批量獲取mongodb某集合某欄位userId用於效能測試

背景:

最近在做某專案的效能測試,需要進行200個登入的併發,這時新建了200個使用者,要用到他們的userId這個資料庫欄位。手動顯示是耗時耗力的,這時就需要造輪子。

由於我們用的是mongodb資料庫,這時考慮到通過python查詢使用者的username獲取對應的userId,然後按照順序追加寫入到excel就可以了。

程式碼:

#!/usr/bin/python3
# 獲取mongodb新建的200個使用者userId用於效能測試


import pymongo
import xlrd
from xlutils.copy import copy


def getUserId(num):
    myclient 
= pymongo.MongoClient("mongodb://賬號:密碼@XX.XX.XX.XX:27017") # 連線資料庫 mydb = myclient["庫名"] # 指定庫名 mycol = mydb["集合名"] # 指定集合名 myquery = {"USERNAME": "performanceTest{0}".format(num)} # 篩選條件 mydoc = mycol.find(myquery) for x in mydoc: # 先手動建一個excel表userId.xls,並將第一個sheet名稱改為“userId”
# 開啟需要操作的excel表 wb = xlrd.open_workbook('userId.xls') # 複製原有表 newb = copy(wb) # 獲取原有excel表中sheet名為‘userId'的sheet sumsheet = newb.get_sheet('userId') # k表示該sheet的最後一行 k = len(sumsheet.rows) # 想原有sheet後面新增資料 sumsheet.write(k, 0, x["
USERNAME"]) sumsheet.write(k, 1, x["_id"]) # 儲存為原有的excel表路徑 newb.save('userId.xls') if __name__ == '__main__': for i in range(1, 201): getUserId(i)

結果:

第一列是username,第二列就是效能測試需要的userId。