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自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

 添加关注,让我们一起共同成长!

posted on 2020-08-28 10:53  Wu_Candy  阅读(241)  评论(0编辑  收藏  举报