前言

在测试中为了提高测试效率,监控线上产品质量,通常会采用脚本,工具或者平台的方式监控线上服务或者验证逻辑是否正常。

同样,小编在日常的工作中也会编辑一些脚本处理一些线上监控以及性能测试等需求,其中接触Python较多,因此接下来会和大家分享Python在运用过程中遇到的问题以及解决方法,精彩继续,不要走开~~




python outlook邮箱 python outlook 库_python绘制贝塞尔曲线


实践一:Python利用outlook发送测试结果邮件

首先,导入win32com库;

import win32com.clientaswin32

其次,注册outlook软件的COM服务,只有注册这种服务之后,才可以通过这种方法打开;

outlook= win32.Dispatch('outlook.application')

然后,设置邮件的各种属性,接收人,邮件主题,邮件正文内容,发送邮件(具体的可以看脚本注释);


python outlook邮箱 python outlook 库_python绘制贝塞尔曲线_02


运行效果


python outlook邮箱 python outlook 库_python outlook邮箱_03


实践二:解决Python中ErrorKey异常

在编辑资讯线上监控脚本时,需要将服务端返回的数据进行处理,读取showtype字段和picurls字段,由于两者均在字典里,因此涉及到读取字典key值的情况。这个需求实践中遇到“明明字典中存在picurls值,却报ErrorKey异常”的问题。

通过网上查阅,方法主要集中在以下三种:【Key in keys()】;【"key值" in d】;【d.get(Key,defaultKey)】三种方法。

但通过实践发现,当处理数据复杂且多的时候,除【d.get(Key,defaultKey)】方法外,其余的两种方法均不稳定,概率性出现ErrorKey异常,这是python自身的问题,因此暂时没有好的办法。

因此建议大家用字典.get(Key,defaultKey)这种方法,例子如下:


python outlook邮箱 python outlook 库_python outlook邮箱_04


运行结果:走的else分支,结果为“不存在”。

实践三:解决Python输出曲线报表图中文不显示的方法

在编辑资讯信息流性能测试脚本时,需要将性能数据绘制成一个曲线图,方便查看。这个逻辑处理之后发现,输出的图中标题以及X和Y轴编辑好的中文不显示(下图中红色框标记位置)。如下图(下图中的数据为测试调试数据,不是真实的数据信息):


python outlook邮箱 python outlook 库_数据_05


出现问题的脚本如下:


python outlook邮箱 python outlook 库_数据_06


解决办法如下:

首先,我们要在代码一开始加入以下两个条件


python outlook邮箱 python outlook 库_python outlook邮箱_07


其次,在绘制的X和Y轴等涉及到中文的地方,做编码格式转化,添加相关包以及指定相关字体。

# 绘制曲线图


python outlook邮箱 python outlook 库_数据_08


修改效果(由于版面有限,所以数据删除了部分):


python outlook邮箱 python outlook 库_python绘制贝塞尔曲线_09


总结

Python很强大,运用过程中会遇到各种各样的问题,小编接下来会分期介绍给大家一些实用的处理方法~

测试,我们是认真的,下期再见~~