Python 刷db数据入ElasticSearch
欢迎关注【无量测试之道】公众号,回复【领取资源】,
Python编程学习资源干货、
Python+Appium框架APP的UI自动化、
Python+Selenium框架Web的UI自动化、
Python+Unittest框架API自动化、
资源和代码 免费送啦~
文章下方有公众号二维码,可直接微信扫一扫关注即可。
本文主要是分享如何将db数据刷入到ES中,步骤非常的简单。
分为两步:
第一步是连接数据库,获取到要匹配的数据。
第二步是调用对应的写ES的接口。
导入第三方库
1 #导入第三方库 2 import pymysql 3 import requests 4 5 #数据配置定义的一个字典 6 ars3_dicts={ 7 "HOST" : 'l-test.beta', 8 "PORT" : 3306, 9 "USER": 'test', 10 "PASSWORD" : 'test123', 11 "NAME":"entity_0" 12 }
执行sql方法
1 #执行sql方法 2 def executesql(query): 3 try: 4 conn = pymysql.connect(ars3_dicts['HOST'], ars3_dicts['USER'], ars3_dicts['PASSWORD'], ars3_dicts['NAME'], int(ars3_dicts['PORT']),charset='utf8') 5 cursor = conn.cursor() 6 cursor.execute(query) 7 result =cursor.fetchall() 8 print(result) 9 print("execute successfully!!!") 10 return list(result) 11 except Exception as e: 12 print(e) 13 print("execute failed") 14 finally: 15 cursor.close() 16 conn.close()
执行写ES的方法
1 #执行写ES的方法 2 def insertES(): 3 sql="SELECT entity_id FROM entity_1.`entity_main_0`;" #从数据库中提供要的数据 4 alist=executesql(sql) 5 for i in range(len(alist)): 6 id=alist[i][0] 7 if(str(id).startswith("3")): 8 url="http://10.7.36.35:9092/api/profile/backdoor/refreshEsData?arsProfileIds="+str(id) #此处是由开发提供的接口 9 print(url) 10 response=requests.get(url) 11 print(response.text)
入口方法
1 #入口方法 2 if __name__ == '__main__': 3 inseertES()
请求后打印的信息如下图所示:
总结:当测试环境的db被另一个环境的db覆盖时,所对应的ES 里面的数据也是要同步进行覆盖的,本文是通过查询db中的数据,然后调用开发开放的接口进行的初始化,这样就可以保障页面检索的数据与db 是一致的。
备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:
添加关注,让我们一起共同成长!