创建公司 已有账号?

基本信息



联系信息

-
-

上传资料

选择营业执照图片文件


上传成功后渲染

公司环境照片(最少一张,长宽比例16:9)

2019

03/12

Python开发

阅读量

·

12774

利用Requests库完成“蜗牛进销存”的登录功能

展开剩余

利用Requests库完成“蜗牛进销存”的登录功能文章摘要





注:本节教材内容,与上期推送的《教材连载:蜗牛进销存项目实战(一)为一个项目实战内容。

回顾上节内容,请点击:教材连载:蜗牛进销存项目实战(一)



1.思路分析


首先我们可以看到首页上的登录功能除了用户名和密码外,还有图片验证码。验证码的存在即是为了防止不断的对系统发送请求,避免恶意攻击。为了达到测试效果,我们往往会采取其他策略来绕过验证码,这里对源码进行了处理,设置了一个万能验证码“1111”帮助我们登录成功。


20190313_150207_125.png


要实现登录首先需要要对请求进行分析,利用HttpWatch分析该请求,可以得到如下信息。

(1)请求类型为POST。

(2)请求类型为application/x-www-form-urlencoded,这是最常见post提交数据的方式,以form表单形式提交数据。

(3)请求正文中的参数有三个,分别对应用户名、密码和验证码。


20190313_153429_530.png


2.代码实现


在Request库中提供了以form表单形式发送post请求的方式,只需要将请求的参数构造成一个字典,然后传递requests.post()的data参数即可,最后对返回的响应进行输出。


import requests

# 构造POST请求正文

loginData = {'username':'boss','password':'boss123','verifycode':'1111'}

r = requests.post("http://localhost:8080/WoniuSales/user/login", loginData)

print("响应头部:")

print(r.headers)

print("响应正文:")

print(r.text)


3.响应对象


这里输出响应的头部信息为字典类型,每对键值分别对应到头部的每个字段。响应正文为“login-pass”,登录成功。


响应头部:

{'Server': 'Apache-Coyote/1.1', 'Set-Cookie': 'JSESSIONID=41B8C4CA8C4D0B84778F78868EB767D2; Path=/WoniuSales; HttpOnly, username=boss; Expires=Sun, 26-Aug-2018 13:20:11 GMT; Path=/, password=boss123; Expires=Sun, 26-Aug-2018 13:20:11 GMT; Path=/', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Type': 'text/plain;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Date': 'Fri, 18 May 2018 13:20:11 GMT'}

响应正文:

login-pass


响应对象除了上面列出的headers和text属性之外,还有更加丰富的成员,这里以响应对象为r为例。

(1)r.headers:响应头,保存在字典中。

(2)r.status_code:响应状态码。

(3)r.cookies:返回响应中的cookie信息。

(4)r.text:解码后的响应正文。

(5) r.content:二进制形式的响应正文。

(6)r.raw:来自服务器的原始套接字响应正文。

(7)r.json():用json解码器处理后的响应正文数据。



接下来三周会陆续推送进销存项目实战的其他内容:

(三)利用Requests库对新增会员和测试。

(四)接口测试框架整合。




为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。

20190312_143915_284.jpg