eclipse输出in thread main_把UI自动化的日志输出到屏幕

小伙伴们在做UI自动化的工具或框架的时候,一定都有截屏功能,当通过截屏来定位问题的时候往往还要去看日志文件,才可以定位问题,那何不将日志也输出到屏幕上,在截屏的时候就截到图片文件上呢?

所以我用flask和win32api写了服务,flask接收测试程序发来的请求,win32api负责输出到屏幕,当需要输出日志的时候,程序给

http://127.0.0.1:5000/log

发个post请求即可。

{  "text":"日志xxxxxxx"}

下面是用postman发请求的效果,显示最后5条日志。

代码不多,整合到测试框架中就可以了。

代码不多,整合到测试框架中就可以了。

代码不多,整合到测试框架中就可以了。

主要需要安装的包  flask,win32api

#encoding=utf-8from flask import Flaskfrom flask import jsonifyfrom flask import requestimport jsonimport  _threadfrom threading import Threadimport win32apiimport win32guiimport win32uiimport win32confrom win32con import *import timeimport datetimefrom datetime import timedeltaclass LogShow:    def __init__(self):        Thread.__init__(self)        self.texts = []    def addText(self,text):        self.texts.append(text)        if len(self.texts)>5:            del self.texts[0]    def printLog(self):        hwnd = win32gui.GetDesktopWindow()        # hPen = win32gui.CreatePen(win32con.PS_SOLID, 3, win32api.RGB(255, 255, 255))  # 定义框颜色        hwndDC = win32gui.GetDC(hwnd)  # 根据窗口句柄获取窗口的设备上下文DC(Divice Context)        dpiScale = win32ui.GetDeviceCaps(hwndDC, win32con.LOGPIXELSX) / 60.0        fontSize = 16        lf = win32gui.LOGFONT()        lf.lfFaceName = "Times New Roman"        lf.lfHeight = int(round(dpiScale * fontSize))        hf = win32gui.CreateFontIndirect(lf)        # win32gui.SelectObject(hwndDC, hPen)        win32gui.SelectObject(hwndDC, hf)        rect = win32gui.GetClientRect(hwnd)        win32gui.Rectangle(hwndDC, 0, 0, 800, 140)  # 左上到右下的坐标        i = 0        for text in self.texts:            win32gui.DrawText(hwndDC, text, len(text), (0, i * 28, 1024, (i + 1) * 28), DT_SINGLELINE)            i += 1        win32gui.ReleaseDC(hwnd, hwndDC)app = Flask(__name__)logShow = LogShow()@app.route('/log',methods=['POST'])def start():    data =json.loads(request.get_data(as_text=True))    text = data['text']    timeStr =  datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')    logShow.addText( timeStr + '    '+ text)    logShow.printLog()    return jsonify({'returnCode':200})if __name__ == '__main__':  app.run()

22b39821040dfd0b156bbbf6f70ee933.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值