颠覆你的Python实践软件测试之路

Python系列六--处理HTTP返回包 问题汇总

2017-08-29  本文已影响30人  倔强的潇洒小姐

1、如何查看http请求头中的 User-Agent 信息?

手机/电脑通用:打开浏览器,访问 http://whatsmyuseragent.com,即可看到

查看手机/电脑的User-Agent信息.png

2、数据类型

在python 2.x中,有两种整数类型,一般的32位整数和长整数,长整数都是以L或者l(不建议使用小写l, 容易跟1搞混),超过32位长度之后会自动转换为长整形。
在python 3.x中,允许我们更随心所欲更自然的使用整数,只有一种类型,没有长度限制

长整型在3.X不适用.png

根据提示是“0o”(数字0 和字母 o),但这个是用来表示8进制的,此处将L去掉就好了
如输入0o1000,输出结果为512,即=1*83+0*82+0*81+0*80

0o八进制.png

3、判断键是否存在于字典中

在Python 2里,字典对象的 has_key() 方法用来测试字典是否包含特定的键(key)。
Python 3不再支持这个方法了,需要使用 in运算符代替

python3里的字典没有了dict.has_key(key).png
if temp_result_interface.has_key(temp_code_to_compare):
# 上述语句改成下面的语句
if temp_code_to_compare in temp_result_interface: 

4、运行有结果,但仍有报错信息:

处理方法: %s要不要加单双引号看表结构设计,非字符型的不需要加
SQL语句如果外面是单引号,里面就用双引号,若外面是双引号,里面就单引号

运行代码输出结果正确,但仍有报错信息.png 表结构设计.png

如果上述方法运行仍是提示
Mysql Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'message": "获取附近服务商成功", "nextPage": 1, "pageNo": 0, "merchantIn' at line 1

SQL前后单双引号问题.png

那可能就跟变量值的类型有关系了
经过调试分析
temp_result_interface[temp_code_to_compare] 和 result_interface 都是字符型,在源代码中增加输出 ,由此推测赋值变量值类型为字符型时 SQL语句中字段参数化时 %s 需要 双引号,SQL语句前后则用单引号

对于这块内容还没有研究透,SQL语句中 %s单双引号的使用 与表结构、变量至类型的关系

大婶说在 操作mysql数据的py文件中对应方法打上断点,这样就能看到具体的执行sql是什么 也能看出哪里出错了
需不需要 单引号 或者双引号 与数据有关系,灵活处理就可以了

SQL语句引号跟变量类型值有关.png

5、较长代码时换行方式(PEP8 一行代码超过120时需换行)

1)使用反斜杠\

Paste_Image.png

2)敲回车键会自动生成

敲回车键会生成换行符.png 参数换行则与左括号后的参数对齐.png
上一篇下一篇

猜你喜欢

热点阅读