接口测试平台代码实现12:用户管理系统的后台代码-登录

简介: 上节,我们尝试制作了一个登陆页面前端,有的小伙伴反馈说有点跟不上前端开发这块,这是正常的,而且公众号又不是什么直播课程,是没有跟不跟的上之说,哪怕一周敲出来一节课的内容也无所谓。不过的确前端开发对我们测试来说一直是一块黑洞,很少有人掌握这里的技术,或者说我们做出来的东西有点丑,不过这正常,如果好看的话,基本都去做前端开发了。

 本节课我提前美化了一下登陆页面,毕竟这是公司同事首次进入绕不开的第一印象,打磨的精致一点,会给人整个平台的质量都很高的赶脚。这里直接上优化后的代码和页面了:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试平台登录</title>
    <style>
         body{
            background: url("/static/login.jpg");
            background-attachment: fixed;
            background-size: cover;
        }
        .wqrf_input{
            width: 90%;
            background-color: #d1d0d1;
            border-radius: 50px;
            text-align: center;
            float: right;
            margin-right: 10px;
            height: 30px;
            border: 0;
        }
        span{
            color: #f25e78;
        }
</style>
</head>
<body>
<br>
    <div style="box-shadow: 4px 4px 6px #2a262a;margin-left: -webkit-calc(50% - 150px);width: 300px;background-color: white; opacity:0.8;border-radius: 20px;text-align: center">
        <br>
        <strong><span style="font-size: xx-large;">接口测试平台</span></strong>
        <br>
        <span>欢迎使用</span>
        <br><br>
            <input type="text" class="wqrf_input" placeholder="用户名">
            <br><br>
            <input type="text" class="wqrf_input" placeholder="密码">
        <br><br><br>
        <button style="width: 90%;height: 35px;border-radius: 50px;background-color: #f25e78;color: white;font-size: large;border: 0;box-shadow: 4px 4px 4px #a0a0a0">登 陆</button>
        <br><br>
        <span style="font-size: xx-small">若首次登录,请点击 <a href="">注册账号</a></span>
        <br><br>
    </div>
</body>
</html>

页面展示:微信图片_20220616131435.png

   好了,正片开始,我们本节课要做的是登陆页面的后台代码,也就是 注册和登录。

   先弄个登陆吧:

打开login.html,找到你的登陆button,给它加上一个onclick属性,值为我们要做的js函数名:login微信图片_20220616131443.png

然后在文件底部加上一个script 标签用来存放login函数微信图片_20220616131448.png

在里面写好function login(){}

   小技巧:你输入fun联想出来之后,直接按tab键盘,它就会给你生成一个默认函数,然后你把名字改好就可以了,之前所有前端js出错,无效的,请仔细检查代码,或者加我给我截图 帮你改正细微问题,也可以自己f12打开浏览器调试,点击console,相当于我们执行js函数的命令窗口,查看各种报错然后修复。

   这个函数我们动笔之前,要思考,这个函数要做什么?

  1. 拿到用户名和密码输入框的值
  2. 把这个俩值传递给后端等待验证
  3. 根据验证结果,如果错误,就显示红色报错!嘲讽一下使用者。

   4.如果成功的话,那就轮不到这个函数干啥了,后端直接给返回新的首页了


所以第一步我们要如何拿到用户名和密码输入框的值?

首先要定位,然后拿value,怎么定位?用id最好,那就先给那俩输入框加上id,曾经我们做selenium自动化时候,经常埋怨开发不给加id让我们定位不好办,现在我们也是开发了,切记要养成习惯,加上id,方便我们自己。微信图片_20220616131643.png

然后在login()中 加上如下俩句,变量名可以随便起。获取到了俩个输入框的值,一个是username,一个是password微信图片_20220616131652.png

然后我们可以检验一下 是否正确。

加入alert('弹窗文案')        代码,来显示我们获取到的对不对,微信图片_20220616131656.png

然后我们刷新页面,记住一定要刷新,否则你的改动是不生效的。

然后输入用户名密码随便输入,点击登陆按钮:微信图片_20220616131702.png

微信图片_20220616131707.png

看样子是成功了!

       接下来就是我们要如何把俩个字符串 传送给我们后端了。

这里教一段非常简单好用的发送http请求的代码。

$.get("你的url",{json格式参数},function (ret){收到返回值后可以做的事})

其中的ret,就是你接收的返回值。

   但是这个$ 开头的写法,并不是js的写法,而是jquery的写法。我们直接使用会报错,所以要先下载并引入jquery。微信图片_20220616131936.png

我们想起一件事,就是我们之前下载菜单的时候,那个静态资源里已经有里jquery.min.js 类的文件,所以我们只需要引入即可,这里说一下,我们基本网上下载的资源,都是一整套js/css/jquery等。

   引入:在head标签内加入script标签,注意不要写到style内。

script这次内部夹的是空的,而要给它加入一个src属性,意为引入js

然后就是粘贴这个jquery.min.js的路径,注意一定要以 /static/...开头,前面的的都不要。然后加入type属性,写死为 text/javascript

   之后才算我们引入成功!微信图片_20220616131942.png

 先删除alert();然后加上这个发送http请求的代码:微信图片_20220616131948.png

然后在里面写上 url,参数,返回代码:微信图片_20220616131953.png

其中的url我习惯写的是页面进入的url加_action,大家可以自行设置

俩个参数,按照字典/json格式书写,用英文逗号隔开。最后收到返回值时,直接弹窗 报错文案。 因为如果是正确的话,我们打算在后台时候直接让用户跳转到其他页面比如首页。那么这个登陆页面也就不复存在了。

   然后我们去urls.py中架设好链接对照:微信图片_20220616132004.png

写了个函数名,尽量保持一致,以免后续我们思路混乱。

然后去views.py中新建login_action函数:微信图片_20220616132410.png

然后让我们思考这个函数应该做些什么事?

  1. 获取前端给的 俩个字符串:用户名和密码
  2. 调用django自带的用户数据库,来验证这个用户是否存在并且密码正确
  3. 如果不正确,就随便给前端返回点什么,前端都会弹窗说报错文案
  4. 如果正确,就给用户进行重定向,定到首页:home.html


好,让我们第一步,获取前端数据!

还记得为啥要带这个reqeust参数么,因为我们所有的数据都藏在这个request参数里。

   如下代码可以从中获取:微信图片_20220616132516.png

其中的username/password就是我们刚刚前端页面发http请求时候的俩个参数名字,一定要对应上!否则会说找不到错误。


我们可以尝试一下,在浏览器随意输入用户名/密码,点击登陆,看看后端我们pycharm能否打印成功。保证服务启动中。微信图片_20220616132525.png

点击登陆按钮后,可以看到已经打印好了,这说明我们的前端数据传输链路打通了。虽然后面报错了,但是无需担心,这是因后端函数并没有给前端返回什么,所以报错。一会我们还要继续写呢。

   

   开始继续写验证用户名密码代码:

这里我们必须引入一个django的库,专门验证登陆的。叫做auth。

然后 用我们前端给的用户名和密码,调用这个auth函数,去用户库里查询用户,我们的引用变量自定义为user, 这个auth函数如果在库里找到了这个用户,那么就会给你返回这个用户实体,否则就给你返回None微信图片_20220616132531.png

所以我们接下来就要 判断,这个user是一个用户实体,还是一个None:微信图片_20220616132653.png

我们先来写 如果用户名密码不对,也就是程序走进了else的情况:微信图片_20220616132658.png

这里我们随便返回,哪怕是个空,前端都会弹窗报错,因为我们前端html已经写好了,只要接收到返回值,无论是什么,都弹窗错误文案!当然这里也可以设计成弹窗提示返回值,然后后端返回值我们就要返回 错误文案。也是可以。

   再来写正确的部分:微信图片_20220616132703.png直接重定向/home/首页,我们前面讲过,HttpResponseRedirect函数是重定向浏览器链接的。现在我们试试看吧!

   刷新浏览器,确保服务运行中。输入用户名密码点击登陆!

然后没有任何反应!!!而后端报了一个错!!!微信图片_20220616132710.png那么这个错误是什么意思呢?

我们看最后一句,sqlite3错误,这是我们django自带的数据库,这说明是数据库错误,no such table,翻译过来是 没有这个表,哪个表?auth_user ,就是我们前面总提的 django自带用户表。

   所以我们现在需要生成这个表。

点击pycharm底部的cmd命令后输入Terminal模式,这里输入的是你操作系统的命令,比如mac的ls widows的dir ,确保我们在这个项目根目录下,也就是能看到 manage.py的目录下

   依次输入并回车:

python3 manage.py makemigrations

python3 manage.py migrate

俩句命令

分别是:同步表结构,生效表结构。

请牢记这俩句命令,之后我们自己弄的任何数据库设置/更改,都需要这俩句来让其生效,是一个最常用的命令,面试中很多面试官靠这种超级常用的命令来试出你到底是培训机构书本填鸭出来的,还是真才实学实际经验爆表的高手微信图片_20220616132717.png

然后我们切换换Run,来观察django的输出日志:

然后我们在浏览器再测试登陆功能:微信图片_20220616133014.png

出现弹窗,说明整个链路 全部打通!后端也没有报错。


接下来我们意识到一件事情,就是我们的用户表并没有一个用户是个空的,所以我们无论输入什么用户名都会找不到 从而弹窗。


所以我们下一节就要学习 注册功能!注册1个账号,然后登陆测试登陆成功的情况。

目录
打赏
0
0
0
0
27
分享
相关文章
微信公众号接口测试实战指南
微信公众号接口测试是确保系统稳定性和功能完整性的重要环节。本文详细介绍了测试全流程,包括准备、工具选择(如Postman、JMeter)、用例设计与执行,以及常见问题的解决方法。通过全面测试,可以提前发现潜在问题,优化用户体验,确保公众号上线后稳定运行。内容涵盖基础接口、高级接口、微信支付和数据统计接口的测试,强调了功能验证、性能优化、安全保护及用户体验的重要性。未来,随着微信生态的发展,接口测试将面临更多挑战和机遇,如小程序融合、AI应用和国际化拓展。
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
Potpie.ai 是一个基于 AI 技术的开源平台,能够为代码库创建定制化的工程代理,自动化代码分析、测试和开发任务。
150 19
Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
52 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
94 10
大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
91 35
使用ChatGPT生成关于登录产品代码的单元测试代码
使用ChatGPT生成关于登录产品代码的单元测试代码
45 16
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
使用 BenchmarkDotNet 对 .NET 代码进行性能基准测试
70 13

热门文章

最新文章

  • 1
    小鱼深度评测 | 通义灵码2.0,不仅可跨语言编码,自动生成单元测试,更炸裂的是集成DeepSeek模型且免费使用,太炸裂了。
    28137
  • 2
    3天功能开发→3小时:通义灵码2.0+DEEPSEEK实测报告,单元测试生成准确率92%的秘密
    31
  • 3
    Potpie.ai:比Copilot更狠!这个AI直接接管项目代码,自动Debug+测试+开发全搞定
    12
  • 4
    【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
    23
  • 5
    基于FPGA的图像双线性插值算法verilog实现,包括tb测试文件和MATLAB辅助验证
    2
  • 6
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
    10
  • 7
    「ximagine」业余爱好者的非专业显示器测试流程规范,同时也是本账号输出内容的数据来源!如何测试显示器?荒岛整理总结出多种测试方法和注意事项,以及粗浅的原理解析!
    11
  • 8
    用户说 | 通义灵码2.0,跨语言编码+自动生成单元测试+集成DeepSeek模型且免费使用
    17
  • 9
    阿里云零门槛、轻松部署您的专属 DeepSeek模型体验测试
    30
  • 10
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
    5
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等