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