*****多用户登录验证*****

一、(常规想法)方法:工作量较大,做起来繁琐

1、当用户名和密码相同时怎么区分两者,使用冒号和括号来区分:

eg. (admin:123456)(123456:demo)(zhang:san);由此得出前面是括号后面是冒号的就是用户名,前面是冒号后面是括号的就是密码。

2、axure判断原理:只要全局变量里面有固定格式的用户名和密码就可以使之与用户输入的用户名和密码进行匹配,从而进行判断。就算输入的用户名是实际存在的前半截也会判断用户名不存在。严格区分了大小写;
注:下面的方法有个bug:如果用户名一致,密码不一致,只要输入的用户名和密码都是存在的也可以登录(如:(admin:123)(admin:456),则登录时只要用户名admin,则输入密码123和456都能登陆成功)

3、判断用户名是否存在:编辑条件【变量值】--【不包含】---【值】---【fx】---【局部变量】--【获取用户名文本框的值n】,fx格式:[[n]]:

4、判断密码和用户名是否一一对应:编辑条件【变量值】--【不包含】---【值】---【fx】---【局部变量】--【获取用户名文本框的值n,获取密码文本框的值p】,fx格式:([[n]]:[[p]])。

注意:函数的格式要跟全局变量里面设置好的一致才能判断出来用户名和密码是否一一对应。

*****注册界面的交互效果*****

1、当输入已经注册的用户名,不填写邮件,提示:
错误:该用户名已被注册,请再选择一个
错误:请填写电子邮件地址

2、输入未被注册过的用户名,不输入邮件时提示:
错误:请填写电子邮件地址

3、电子邮件和用户名都不填写,提示:
错误:请填写用户名。
错误:请填写电子邮件地址

注:1、提示框靠在一起时线条问题,可以去掉边框以实现将两者在视觉上做出连在 一起的感觉。
2、提示框有两行提示信息的关键:
同一个动态面板中的两组状态:状态1只有一行提示信息(tishi1),状态2有两行提示信息(tishi2),且高度比状态1高(否则也放不下两个文本输入框!!)。

步骤:
1)提示框开始是隐藏的,当点击【注册】时才会显示错误提示框,且整个表单向下拉动一定距离:

选中【注册】--双击【鼠标点击时】--【显示tishi推动元件向下】--【设置面板状态tishi为tishi2】(此时两行错误提示信息不能完全显示,原因是面板尺寸不够)--【设置面板尺寸为合适的高度】或者不采用设置面板尺寸的方法,直接鼠标右键勾选【调整大小以适合内容】也可实现相同效果

注意:由于不同的情况,提示文本内容和提示框的高度不一样,所以再每次显示提示元件向下推动之前都需要将提示隐藏并拉起来。

如:隐藏tishi拉动元件向下之后再显示tishi推动元件向下。否则所有提示框动作 联合在一起就会拉不起来,与表单连在一起。

二、简便方法(推荐)

1、由思维导图得知显示的提示有两种情况:一条提示(状态1);
两条提示(状态2);

关键:不管是一条提示还是2条提示,不管是哪种提示的可能,显示的提示都是那六种组合起来的

2、首先将情况分为6种:

1)用户名为空:提示1写入:用户名为空;提示2a写入:用户名为空

2)用户名已注册:提示1写入:用户名已注册;提示2a写入:用户名已注册

3)用户名无效:提示1写入:用户名无效;提示2a写入:用户名无效

4)邮箱为空:提示1写入:邮箱为空;提示2b写入:邮箱为空

5)邮箱已注册:提示1写入:邮箱已注册;提示2b写入:邮箱已注册

6)邮箱无效:提示1写入:邮箱无效;提示2b写入:邮箱无效

3、若写入的提示只有一个,则显示状态1,有2个则显示状态2。

注意:在显示动态面板之前要将其拉上去即隐藏。

4、执行完1~3步骤后,第一次验证没问题,但是第二次验证又从上至下执行用例,

会出问题,所以需要在验证之前就清空提示信息。即将提示1、提示2a和提示2b的文

本都设为空,且放在用例的最开头。

5、当提示1和提示2a、提示2b都为空即用户名和密码都正确时跳转到登录界面。

6、完整用例详情和顺序如下图所示:

****全局变量的思想来判断用户名和邮箱是否已注册*****

1)全局变量设置:
(zhang:san:zhang@qq.com)(li:san:li@qq.com)(admin:123456:admin@qq.com)

(li:si:li@qq.com)

2)之前假设的用户名为“1”的时候表示已注册,则重写编辑该用例的条件为:是

否包含全局变量里的用户名:

if值于up包含"([[username]]:" (用户名坐边是括号,右边是冒号)

username是局部变量(注)

3)之前假设的邮箱为“1”的时候表示已注册,则重写编辑该用例的条件为:是否

包含全局变量里的邮箱地址:

if值于up包含":[[email]])" (邮箱坐边是冒号,右边是括号)

email是局部变量(注)

4)这里的全局变量已经加上了邮箱地址,所以之前的登录界面也需要稍作调整,否

则判断将有误。

注意:在添加多个用例时要注意用例之间的联系(If or Elese If),如果没有弄

清其间的联系,会出 现结果和预想不一致。

用例详情如下:

Axure实现多用户注册验证的更多相关文章

  1. MVC中使用WebMail 发送注册验证信息

    在MVC中发送Email 可以使用WebMail :使用起来十分简单.如下: WebMail.SmtpServer = ConfigurationHelper.GetValue("SmtpS ...

  2. Ajax注册验证用户名是否存在 ——引自百度经验

    Ajax注册验证用户名是否存在 http://jingyan.baidu.com/article/a948d6515fdf870a2dcd2e85.html

  3. PHP+Ajax 异步通讯注册验证

    HTML代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...

  4. jQuery失去焦点的时候注册验证

    //注册验证$('form :input').blur(function () { if ($("#txtName").val() == "") { $(&qu ...

  5. SpringBoot注册登录(三):注册--验证账号密码是否符合格式及后台完成注册功能

    SpringBoot注册登录(一):User表的设计点击打开链接SpringBoot注册登录(二):注册---验证码kaptcha的实现点击打开链接      SpringBoot注册登录(三):注册 ...

  6. thinkphp+jquery+ajax前后端交互注册验证

    thinkphp+jquery+ajax前后端交互注册验证,界面如下 register.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...

  7. Python学习:8.小项目之登录注册验证

    简介 本次项目登录注册验证是对之前学习知识点的加深学习,这次项目的练习的知识点有函数.判断语句.循环语句.文件操作等. 项目流程 运行代码之后,输出登录或者注册选项. 当选择登录之后,输入用户名密码, ...

  8. Java实现发送邮箱验证码/注册验证链接

    本文以163邮箱为例 1.准备(邮箱账号,邮箱必须设置POP3/SMTP/IMAP,设置步骤如下:) >>步骤:1 开启授权码服务 >>步骤:2 手机获取验证码 >> ...

  9. jquery注册验证的写法

    在做注册页面时会用到jquery验证注册信息,用户名,密码,邮箱,手机号的验证,比较简单的,新手莫怪... <script> function Name(){ var name = $(& ...

随机推荐

  1. (2)Java数据结构--二叉树 -和排序算法实现

    === 注释:此人博客对很多个数据结构类都有讲解-并加以实例 Java API —— ArrayList类 & Vector类 & LinkList类Java API —— BigDe ...

  2. ReentrantLock(重入锁)的使用

    //效果和synchronized一样,都可以同步执行,lock方法获得锁,unlock方法释放锁public class MyService { private Lock lock = new Re ...

  3. 20165231 2017-2018-2 《Java程序设计》第1周学习总结

    本周学习的是一些java简单的基本编译,反编译和解释器.然后学习使用git了上传到git@osc进行代码托管,git是初学的,需要建立库然后远程上传代码,如果建立失败或者因为种种缘故无法上传的可以一个 ...

  4. 利用crash 分析软死锁问题【转】

    转自:https://blog.csdn.net/divlee130/article/details/47806551 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  5. layout 的应用

    在XAF的开发中,详细Detail 或组合DashBoard页面,需要使用 LayoutControl 进行控件排列,下面讲述如何通过写代码进行操作. 0.DevExpress 的布局控件(DevEx ...

  6. aiohttp的笔记之TCPConnector

    TCPConnector维持链接池,限制并行连接的总量,当池满了,有请求退出再加入新请求.默认是100,limit=0的时候是无限制 1.use_dns_cache: 使用内部DNS映射缓存用以查询D ...

  7. matlab处理手写识别问题

    初学神经网络算法--梯度下降.反向传播.优化(交叉熵代价函数.L2规范化) 柔性最大值(softmax)还未领会其要义,之后再说 有点懒,暂时不想把算法重新总结,先贴一个之前做过的反向传播的总结ppt ...

  8. requests库入门13-会话对象

    会话对象可以在跨请求保持某些参数,会话对象有requests api的大部分方法,我理解会话对象就是一个资源共享池 使用requests.Session()可以创建会话对象的实例 还是以之前GitHu ...

  9. 设计模式C++学习笔记之十三(Decorator装饰模式)

      装饰模式,动态地给一个对象添加一些额外的职责.就增加功能来说,Decorator模式相比生成子类更为灵活. 13.1.解释 main(),老爸 ISchoolReport,成绩单接口 CFourt ...

  10. 1、git基础介绍及远程/本地仓库、分支

    1. Git基础介绍 基于Git进行开发时,首先需要将远程仓库代码clone到本地,即为本地仓库.后续大部分时间都是基于本地仓库上的分支进行编码,最后将本地仓库的代码合入远程仓库. 1.1. 远程仓库 ...