代码改变世界

将数据库中数据写入本地文件中

2019-11-28 11:46  改改~_~  阅读(1167)  评论(0编辑  收藏  举报

Jmeter做性能测试中,需要读取订单号的数据

从数据库中查询复制到文件中麻烦了;

直接用JDBC从数据库中读取,担心会影响实际测试结果,因此需要把数据手动复制到文件中

 

 

 python代码的实现:

import selenium
import requests
import json
from lxml import html
# from sgmllib import SGMLParser
from lxml import etree
import pymysql
import mysql_ok

phones=1591038300
filename='888mysql_yx.txt'

'''
从数据库中取数据写到本地文件中
'''

mydb = pymysql.connect(host="10.253.125.188", port=3306, user="root", passwd="sjroot", db="user", charset='utf8')
mycursor = mydb.cursor()

'''查询手机号码'''
# sql = "SELECT phone_tel FROM user.t_user_info where phone_tel like '%{}%';".format(phones)

'''查询用户id'''
# sql = "SELECT t.id,t.phone_tel FROM user.t_user_info t where t.phone_tel  like '%{}%';".format(phones)

'''查询授信订单号'''

sql = "SELECT a.app_id FROM bill_data.t_org_br_credit_info a left join user.t_user_info b on a.user_id=b.id " \
        "where a.user_id in (SELECT id FROM user.t_user_info t where "\
            "t.phone_tel like '%{}%' ) "\
                "order by phone_tel  ASC;".format(phones)


'''查询用信订单号'''



mycursor.execute(sql)
myresult =mycursor.fetchall()
fp = open('E:\\apache-jmeter-4.0\\test\\ziyingfiles\\{}'.format(filename),'w')
num_count=0
for x in myresult:
    num_count+=1
    print('phone_tel:', x[0], type(x))
    fp.write(x[0] + "\n")

fp.close()
mycursor.close()
mydb.close()

print('写入完成,共写入{0}条数据'.format(num_count))

 

写到函数中for循环不执行,为什么呢呢??

import selenium
import requests
import json
from lxml import html
# from sgmllib import SGMLParser
from lxml import etree
import pymysql
import mysql_ok

phones=1591038300
filename='888mysql_yx.txt'

'''
从数据库中取数据写到本地文件中
问题:for循环不执行
'''
def get_mysql_datas(file):

    mydb = pymysql.connect(host="10.253.125.188", port=3306, user="root", passwd="sjroot", db="user", charset='utf8')
    mycursor = mydb.cursor()

    '''查询手机号码'''
    # sql = "SELECT phone_tel FROM user.t_user_info where phone_tel like '%{}%';".format(phones)

    '''查询用户id'''
    # sql = "SELECT t.id,t.phone_tel FROM user.t_user_info t where t.phone_tel  like '%{}%';".format(phones)

    '''查询授信订单号'''
    # sql = "SELECT b.phone_tel,a.app_id FROM bill_data.t_org_br_credit_info a left join user.t_user_info b on a.user_id=b.id " \
    #         "where a.user_id in (SELECT id FROM user.t_user_info t where "\
    #             "t.phone_tel like '%{}%' ) "\
    #                 "order by phone_tel  ASC;".format(phones)


    '''查询用信订单号'''
    sql = "  select  a.app_id from  bill_data.t_org_br_apply_info a left join user.t_user_info b on a.user_id=b.id "\
            "where a.app_id in (select b.app_id from bill_data.t_org_br_apply_person b  where "\
                    "b.tel_1 like '%{}%');".format(phones)



    mycursor.execute(sql)
    myresult =mycursor.fetchall()
    fp = open(file,'w')
    num_count=0
    for x in myresult:
        num_count+=1
        print('phone_tel:', x[0],type(x))
        fp.write(x[0]+ "\n")

    fp.close()
    mycursor.close()
    mydb.close()

    print('写入完成,共写入{0}条数据'.format(num_count))

if __name__ =="__main__":
    file = 'E:\\apache-jmeter-4.0\\test\\ziyingfiles\\{}'.format(filename)
    get_mysql_datas(file)