DJANGO+PYTHON+SELENIUM实现版本发布后,调用自动化脚本来验证发布发布环境

背景:公司在发布版本的时候,需要维护几百台服务器,往每个服务器上面部署相同的应用。发布完成后,需要测试对每个环境进行相同的环境,目前的测试验证是手工进行的。最近公司要实现这么个功能,让我自动化处理环境验证,并且要保证效率(就是并发咯),执行完成后把结果发送给相关人员。发布版本的时候,会存在分批次发布的问题(几百台服务器分几天发布),这样执行验证的时候,需要预先知道运维到底发布了哪些环境。

需要实现的功能:1、实现自动话验证  2、接收运维传递的服务器参数,解析为服务器的访问url  3、环境太多,线性执行效率太低,考虑多线程 4、ui自动化存在不稳定问题,第一次失败的环境需要重新执行  5、执行结果通过邮件发送给相关人员。

理清需要实现的功能后,跟运维沟通,运维传递服务器信息的时候 是以url格式传递给我,服务器信息拼接在url后面,以逗号分割。我这边部署一个web服务,接收到url请求后,解析url,把服务器信息转变为url信息,解析后的url信息传递给执行脚本。解决这个后,基本就没什么问题了


多线程并发。使用了threading

        threads=[]
        nloops=range(len(loops))
        count=0
        drs=[]
        urls=[]
        for i in range(len(loops)):
            login(i,drs,loops,count,urls)
            count=count+1
        for  i in drs:
            t=threading.Thread(target=loop,args=(i,))
            threads.append(t)
        for i in nloops:
            threads[i].start()
        for i in nloops:
            threads[i].join()

关于threading控制线程数的问题,因为服务器有几百台,如果不控制线程数量,性能方面会有问题,所以在线程外面,切割服务器分组,每次只多线程运行一个组的测试,执行完毕后再执行下一个组。服务器分组的格式为

def splist(l,s):
    "将list等分 l"
    return[l[i:i+s] for i in range(len(l)) if i%s==0]

剩下来就是个人的盲点知识了,部署web服务器,运维传递请求参数,我接收后执行。翻了下django,部署了一个服务,如果需要其它pc访问,在启动服务器的时候  设置服务器ip为0.0.0.0:8000

《待续》。。。。。。。。。。。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值