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