接口测试平台-11:注册功能

1. 如何注册用户

有以下几种设计:

  • 切换到另一个页面,一个注册页面,里面有用户名密码确认密码 注册按钮。
  • 直接使用用户在登陆界面输入的用户名/密码,进入后台完成注册,给用户弹窗提示注册成功!
  • 弹出一个弹层,上面有用户名/密码输入框和注册按钮。
  • 弹出一个弹窗,上面显示“公司内部平台,注册账号需要联系xxx” 然后等别人联系你了,再由你去数据库后台去创建这个用户

 

按照最简单的方式来,重点是之后的接口测试模块,并不是用户管理模块。所以选择第2种,简单粗暴。

 

2. 打开login.html,找到注册按钮,是一个a标签,a标签不但在href属性中可以写一个超链接,也可以在href中写一个js函数。

因为要传递 用户名/密码 作为数据,所以href属性要写一个js函数,取名为:register()。具体写法:javascript:函数名() 

<span style="font-size: xx-small">若首次登录,请点击 <a href="javascript:register()">注册账号</a></span>

如图,在script中增加注册的function

接收到返回值后不再直接弹出写死的文案,而是选择弹出请求返回值,具体显示什么由后台决定。而后台的返回值就是ret。所以alert(ret) 。为什么要这么做呢?

因为用户注册最少有两种结果:

  • 注册成功
  • 用户已存在注册失败
  • 其他问题,如密码过短等等违反你自己定义的规则

所以为了后续方便我们增加规则等这样做就会很方便。

 

3. 添加映射

url.py

url(r'^register_action/$', register_action),  # 注册

views.py

def register_action(request):
    username = request.GET['username']
    password = request.GET['password']

    # 开始 联通django用户表
    try:
        user = User.objects.create_user(username=username, password=password)
        user.save()
        return HttpResponse('注册成功')
    except:
        return HttpResponse('注册失败~用户名好像已经存在了~')

这里可以看到,依然是先获取到了前端给的用户名/密码。

然后从这个django.contrib/auth.models 库里倒入里User方法。(其实User是orm方式操作用户表的实例)

然后直接用User.objects.create_user方法生成一个用户,参数为用户名和密码。然后保存这个生成的用户就是注册成功了。

但是如果用户表中已存在这个用户名,那么,这个生成语句就会报错。所以我们用try来捕获这个异常,如果发送错误那就是“用户已经存在”,如实给用户返回这句话。如果没问题,那么就返回 注册成功。

 

现在刷新页面来测试,先登陆一个账号:用户名 测试开发干货 密码123。

点击登陆,提示用户名密码错误。因为这时候还不存在这个账号

点击注册账号,提示注册成功

再点击注册按钮!

再点击登录

重点来了!仍然报错哦!

 

引入新知识点:前端想给后端传数据,发送请求,如果不是表单提交,或者超链接,只用异步接口请求(就是我们前面用的$.get(“url”,{参数}{返回动作函数})) 的话,那么后端无论怎么写重定向语句,都是徒劳的,前端并不会直接跳转去/home/。

但是我们又不想去大改前端的登陆架构,用什么办法弥补呢?

答案很简单,后端可以返回诸如 True/False 0/1 成功/失败 这种字符串。因为前端的js函数里接受到ret就是这个后端返回的字符串。所以前端js可以根据这个ret来作出不同的处理,比如跳转到/home/。

这就像雨化田台词 :你东厂办不了的事,禀告我们西厂,我们西厂来办。你们管的了的我们要管,管不了的我也要管,先斩后奏,皇权特许,这!就是西厂,够不够清楚?

所以赶在这次就会,就要训练好我们的应急处理能力,将来线上出现bug,我们要以最小代价紧急修复的次数不会少。你不那每次都完全重构吧?所以这里给大家埋了一个坑,提升一下这方面的经验。

那么现在修改后端login()函数,让他别操心的重定向了,直接就返回 成功 还是 失败 就行,其余的事交给前端js

 

然后回到前端js,改动如图:

现在我们去试登陆一下:用户名:测试开发干货,密码:123

 

4. 校验登录态

密码要想显示*****,只需要给input标签 的type属性 从text改成password即可

 

直接访问:http://127.0.0.1:8000/home/ ,目前可以直接访问,因为进入home页面的函数 home() 没有强制要求登陆

所以django是默认放行的。那么要如何避免这种钻空子的状况呢?

 

解决:首先我们要给home()函数 加上django自带的登陆态检查装饰符login_required ! 导入后,直接加在home函数头上即可!

看看效果:

再去修改login函数中成功登陆的分支,给他加上:

如果用户一但登陆成功,就调用django的真正登陆函数auth.login。把这个登陆状态也就是成功的用户名当作session写进用户的浏览器内,之后用户就可以成功进入各个页面了。

auth.login(request, user)
request.session['user'] = username

 

现在我们再来试试看:

  1. 非登陆状态 无法直接进入/home/ , 报错

  2. 登陆状态进入/home/ 成功进入home.html

  3. 先进入/login/ ,登陆成功,发现成功跳转到home.html

 

5. 完善:就是当用户非登陆状态,直接进入/home/时不应该报错,而是跳转login.html登陆。所以继续改动俩个地方:

  • welcome函数 也加上 登陆态检查装饰符,之后我们几乎每个重要页面都要加上这个装饰符
  • urls.py加入非登陆状态自动跳到登陆页面的映射

 

下期:退出功能实现 + 熟悉django自带后台管理平台

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 接口测试用例-金融银行类参考.xlsx是一个金融银行类接口测试用例的参考文件,包含了一系列接口测试用例的详细信息。在接口测试中,我们主要关注接口的功能、性能、安全等方面的测试。 在该文件中,每个接口测试用例都包含了以下几个关键要素: 1. 用例编号:每个用例都有一个唯一的编号,便于标识和查找。 2. 用例名称:用例的名称描述了被测试接口的功能或行为。 3. 测试步骤:详细描述了每个测试流程的步骤、操作、输入和期望结果。 4. 前置条件:指明了执行该用例之前需要满足的条件和环境。 5. 测试数据:包括了每个测试步骤所需的输入数据、参数和预期结果。 6. 期望结果:用例执行完成后,每个步骤应该得到的预期结果。 7. 实际结果:用例执行后,实际获得的结果。 8. 测试结果:用例执行后,根据实际结果与期望结果的对比,给出测试结果的判断,如通过、失败、未通过等。 通过参考该文档,我们可以了解到金融银行类接口的测试重点和测试需求,能够更好地设计和执行接口测试用例。同时,该文档也能够帮助测试团队在编测试计划、测试报告等方面提供依据,提高测试效率和质量。 总结而言,接口测试用例-金融银行类参考.xlsx是一个重要的测试文档,提供了金融银行类接口测试用例的详细信息,帮助测试团队进行接口测试工作。通过参考该文档,我们可以更好地了解接口测试的要点和需求,提高测试效率和质量。 ### 回答2: 《接口测试用例-金融银行类参考.xlsx》是一个用于金融银行类接口测试的参考文档。该文档包含了一系列测试用例,用于验证金融银行类接口的功能和性能。 接口测试是在软件开发过程中非常重要的一环,它主要用于测试系统之间的数据传输和交互。金融银行类接口测试则是指对金融银行相关的接口进行测试,包括用户注册、登录、账户管理、转账等功能。 《接口测试用例-金融银行类参考.xlsx》中的每一个测试用例都对应了一个接口的测试场景和预期结果。在测试过程中,测试人员可以根据这些测试用例的描述和预期结果,通过调用接口进行测试,并验证接口是否符合预期功能。 例如,一个测试用例可能包含如下信息: 接口名称:用户登录接口 测试场景:使用正确的用户名和密码进行登录 预期结果:登录成功,返回用户的相关信息 测试人员可以根据这个测试用例的描述,去调用用户登录接口,并检查返回结果是否和预期一致。如果预期结果和实际结果一致,那么说明该接口通过了测试;如果不一致,则说明该接口存在问题,需要进行修复。 通过使用《接口测试用例-金融银行类参考.xlsx》,可以帮助测试人员快速了解金融银行类接口的测试需求,并根据需求编相应的测试用例。同时,该文档也可以作为测试人员进行接口测试的参考,提高测试的效率和质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值