python web 自动化测试,python实现网页登录
Yyds干货库存
我们实现了一些添加、删除、查看服务器管理员的操作,但是还没有实现管理员登录的功能。
现在让我们根据API接口文件实现管理员登录功能。
一、处理登录和注销请求我们可以在mgr目录下创建一个代码文件sign_in_out.py。
这个代码文件用于处理管理员登录和注销的API请求。
你可以考虑一下,我们的代码应该如何处理登录请求?
只需将请求参数中的用户名和密码拿出来,与数据库中记录的用户名和密码进行比较。
如果与数据库中的记录一致,则认为认证通过,否则不通过。
django中有一个内置的app名为django.contrib.auth,默认包含在项目的已安装App设置中。
这个应用程序的模型定义包含一个名为auth_user的用户表。
当我们执行migrate创建数据库表时,根据,将为我们创建用户表auth_user,如下所示:
Django.contrib.auth这个app给我们做了登录验证功能。
我们只需要使用这个应用程序库中的方法。
Django的文档给出了登录和注销代码的例子。我们稍微修改一下。
在我们的mgr目录下,创建一个sign_in_out.py文件。
在该文件中,输入以下内容:
from Django . HTTP import JSON response from Django . contrib . auth import authenticate,login,Logout # log in processing def sign in(request):#从HTTP POST请求中获取用户名,密码参数username=request . POST . Get( username )password=request . POST . Get( password )#使用Django auth库中的方法验证用户名和密码User=authenticate(username=username,password) #如果可以找到用户, 并且密码正确如果user不是none:if User . is _ active:if User . is _ super User:log in(request,User) # save用户类型request . session[ usertype ]= mgr ret JSON response({ ret :0 })else:return JSON response({ ret :1,Msg :请用管理员帐户登录 })else:return JSON response({ ret :0, Msg : User has disabled })#否则用户名和密码是错误的else 通过sms系统创建url路由,浏览器登录页面的url为3358127.0.0.1: 8080/mgr/
但这不是登录API接口的url路径。
根据界面,管理员登录的API路径是/api/mgr/signin。
在上一课中,我们已通过sms/urls.py将以下路由记录添加到常规路由文件中:
#所有以api/mgr #开头的URL都根据mgr.urls (API/mgr/,include (mgr.urls )中的子路由表进行路由。现在,我们只需要将以下内容添加到mgr目录下的子路由文件urls.py中:
来自姜戈。来自mgr import sign _ in _ out URL模式的URL导入路径=[path (sign in ,sign _ in _ out。签到),路径(签出,签入_签出)。注销)]这意味着:
如果有一个HTTP请求,它的url是/api/mgr/signin,那么它将由sign_in_out.py中的signin函数处理,
如果有一个HTTP请求的url是/api/mgr/signout,那么它将由sign _ in _ out.py中的signout函数处理。
第三,测试我们的代码,使我们的后端登录请求处理代码已经完成。
那么,如何检验是否正确呢?
3.1测试登录信息您仍然可以使用requests库来构建登录请求http消息,并检查响应以查看是否可以成功登录。
很简单,就下面这段代码:
import requests,pprint payload={ username : byhy , aabbcc : 8888888 } response=requests . post( http://localhost/API/mgr/sign in ,data=payload)pprint . pprint(response . JSON())
运行一下,看看能不能返回这样的结果。
根据接口文档,ret值为0,表示登录接口调用成功。
3.2测试用户信息
测试代码:
# @ Time:2022/7/11 20:31 # @ Author:it s Dream # @ File:test . py import requests,PPT payload={ action : list _ customer } response=requests . get( http://127 . 0 . 0 . 1:8080/API/mgr/customers ,params=payload)pprint . pprint(response . JSON())运行结果
来自博客作者为梦想原创作品。转载请联系作者取得授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。