常见的python问题解决思路

2020-12-28 11:40:20 浏览数 (1)

背景

日常项目中,在使用python优化测试工具时,小编遇到了一些较常见的问题,现借此机会和大家分享下这些问题及相关的处理思路。

问题分享

问题1:解决特定接口无法通过IP直接访问的问题

问题场景

在进行接口测试时,需要分别验证测试环境、待上线环境、线上环境的生效性,但接口无法通过测试IP访问,只能通过特定域名来访问。

处理思路

通过设置代理的方式,在get/post中请求时设置host值。

实例展示

代码语言:javascript复制
#headersData的作用是设置代理,测试环境为ip,直接访问ip不可以,需要通过特定域名访问url

知识扩展

使用python进行模拟get/post请求时,也可以设置其他的headers;例如Content-Type、User-Agent、Cookie等。

代码语言:javascript复制
headersData ={

问题2:解决如何记录不同级别日志的问题

问题场景

在python脚本调试及使用过程中,为了方便查看及定位问题,需要增加一些不同级别的日志。

处理思路

使用python的logging模块进行日志记录。

实例展示

代码语言:javascript复制
#方便调试

知识扩展

Logging输出特定格式的日志样式(时间 日志级别 输出信息)。

代码语言:javascript复制
#level=loggin.DEBUG代表只有日志级别等于或者高于DEBUG时才会被记录(日志级别:DEBUG<INFO<ERROR<WARNING<CRITICAL)

思考:logging与print的区别

1、logging支持设定日志级别,输出指定级别的日志; 2、Logging支持设定日志输出到文件中,且可以设定输出格式; 3、Print打印的输出便于调试,验证通过后往往会注释掉,后续一旦需要维护,再添加注释比较麻烦。

问题3:解决如何处理复合数据的归类处理的问题

问题场景

代码语言:javascript复制
List_A=[{'0000':'6.0.12'},{'189000':'6.0.12'},{'189001':'6.0.12'},{'189001':'6.0.13'},{'0000':'6.0.13'},{'189000':'6.0.13'}]

在使用python进行工具优化时,为了便于结果输出,需要将List_A这种格式的数据归类成List_B格式的数据。

处理思路

1、首先新建一个空的Hash_A哈希表,一个空的List_C数组; 2、依次遍历List_A中的每一个数据,取出每个数据的key值,即’0000’、’189000’、’189001’; 3、判断步骤2中key值是否在步骤1中Hash_A表中,如果不在Hash_A表中,见步骤4,如果在Hash_A表中,见步骤5。 4、将步骤2中key对应的value值添加到List_C数组中,并将key:List_C键值对添加到Hash_A表中,最后清空List_C数组; 5、取出Hash_A表中key对应的value值,并将value值赋值给List_C数组,将步骤2中key对应的value值添加到List_C数组中,并将key:List_C键值对添加到Hash_A表中,最后清空List_C数组; 6、最后输出Hash_A即可。

实例展示

代码语言:javascript复制
# 整理归类结果

问题4:解决如何对以“.“或者”-”组成的多段的数字型字符串进行排序的问题

问题场景

代码语言:javascript复制
list_V=["6.0.12","5.0.13","6.6.12","6.6.15","6.8.16"]

在使用python实现下拉按钮时,需要将上述列表中的数据按照顺序添加到组件上。

处理思路

先将list_V中的每个数据分别转换成数组,然后使用python内置的sort函数进行整体排序;

实例展示

代码语言:javascript复制
list_V.sort(key=lambda x:list(int(v) for v in x.split(".")))

0 人点赞