前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次刻骨铭心的栽坑

记一次刻骨铭心的栽坑

作者头像
清菡
发布2020-12-02 16:42:15
6640
发布2020-12-02 16:42:15
举报
文章被收录于专栏:清菡软件测试清菡软件测试

坑一

这两天用PyCharm打开我的代码,因为进入的路径不对,导致我代码运行报错。

错误打开方式:

正确打开方式:

文件有3层,而我从第2层直接打开的,所以报错。涉及这种导入模块的,一定要注意路径是否正确。

此处,特意感谢女神的帮助。

坑二

打开文件时候选择的路径不同,可能导致代码自动变化,缺少代码,导致运行报错。

后来发现没了那个类名,所以报错,补上就好了。

坑三

我下载官网的HTMLTestRunner,没改HTMLTestRunner的代码,导致运行报错。因为官网的HTMLTestRunner.py文件是python2用的,python3要想用,必须改代码。

由于官网的HTMLTestRunner版本太老,显示界面不美观也不完整。同行给了我个好用的HTMLTestRunner.py文件包。

关注公众号进群可以领取。

这个版本的HTMLTestRunner不需要改里面的代码,直接放在python路径下的Lib文件夹下的site-packages文件夹中。如果PyCharm用的是PyCharm虚拟解释器的话,则找到虚拟解释器的位置,放在venv文件夹下的Lib文件夹下的site-packages文件夹中。

坑四

我开着Fiddler下载pip包,总是下载失败。关掉Fiddler就可以了。应该是开着代理,影响下载了。

补充

输出结果出现:

...在单元测试里表示成功了。

F表示失败了,用例没执行通过。

E表示代码错误。

...三个点代表3条用例,20个点代表20条用例。

代码语言:javascript
复制
Python里面有个第三方库 requests

import requests

#get请求  不带参数
#此处接口不能使用,请使用正确的登录接口,根据此代码进行测试。
url='http://120.78.128.25:8765/Index/login.html'
res=requests.get(url,cookies=None)#返回一个消息实体
#传的关键字参数是有限制的,参照需求文档
#res=requests.get(url,a=10,b=20)#错误写法
#按ctrl+b可以看到,return request('get', url, params=params, **kwargs)
#request发起一个get类型的请求,然后传url,传params,传**kwargs
#是get请求传的就是get请求
# print(res)
#响应的里面包含什么?
#响应头,状态码,响应报文。有的时候会带些session回来,
#登录的话,还有cookie在里面,会返回一些cookie信息。
#这个消息实体,它返回的是这样:
#<Response [200]>
#告诉你,这是个响应结果的消息实体。它的状态是200

#所有的东西都包装在这个实体里面了。如果要去看这些东西,就拆分开来看。
# print("响应头:",res.headers)
# print("响应状态码:",res.status_code)
# print("响应正文:",res.text)#html
#print("响应正文2:",res.json())#会报错,只有json类型的返回值才支持json。
#post请求  带参数
# url='http://119.23.241.154:8080/futureloan/mvc/api/member/login'
# data={"mobilephone":"18688773468","pwd":"123456"}
#为什么手机号是字符串?在请求的时候,输入的是整数还是什么,在代码里都是统一做字符串处理的,它不是一个整数。
# res=requests.post(url,data)#消息实体
print("响应头:",res.headers)
print("响应状态码:",res.status_code)
print("**cookies**",res.cookies)#从消息实体中拿到cookies
print("**cookies value**",res.cookies['JSESSIONID'])
#直接拿到Key,会把Value取出来。
#cookies是个跟字典有点类似的,但不是字典形式。之所以称为类字典,可以根据Key取值。
#必须登录成功后,它才会去做一个设置cookie的作用。这个cookie设置后,后续才可以拿这个cookie去做其它的事情。
print("响应正文1:",res.text,type(res.text))# 返回字符串格式str
print("响应正文2:",res.json(),type(res.json()))#返回dict格式#推荐使用这种,方便取值。
# 我们返回的结果,如果说是html,xml,json格式的,可以用text格式去获取。
#如果说是html,xml,json格式的,都拿json去获取是会报错的。
#只有json类型的返回值才支持json。
#html和json在这里不可以直接转换,它们是不同的数据格式。

我们返回的结果,如果说是html,xml,json格式的,可以用text格式去获取。如果说是html,xml,json格式的,都拿json去获取是会报错的。只有json类型的返回值才支持json,html和json在这里不可以直接转换,它们是不同的数据格式。

一般放在字典里面,除非接口文档说了是json格式。

如果遇到验证码,图片,短信,阻碍了我的测试,可以让它完全过,或者让开发设置个万能的。这样测试环境就节省时间,做自动化更方便些。设置验证码只是让用户操作更规范。


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 坑一
  • 坑二
  • 坑三
  • 坑四
  • 补充
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档