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。

 

posted @ 2022-05-20 11:05  风吹稻香  阅读(277)  评论(0编辑  收藏  举报