背景: 最近在做某项目的性能测试,需要进行200个登录的并发,这时新建了200个用户,要用到他们的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。