用户接口

视图家族 & 路由组件

给你一囗甜甜゛ 提交于 2020-02-23 12:19:39
目录 视图家族 & 路由组件 视图集与路由组件 基于 GenericAPIView 的十大接口 基于 generics 包下工具视图类的六大基础接口 视图集 路由组件:必须配合视图集使用 自定义路由组件(了解) 上传图片接口 权限 做项目是否要分表管理前后台用户 权限六表 三大认证规则 视图家族 & 路由组件 视图基类:APIView、GenericAPIView 视图工具类:mixins包下的五个类(六个方法) 工具视图类:generics包下的所有GenericAPIView的子类 视图集:viewsets包下的类 GenericAPIView基类(基本不会单独使用,了解即可,但是是高级视图类的依赖基础) 1)GenericAPIView继承APIView,所有APIView子类写法在继承GenericAPIView时可以保持一致 2)GenericAPIView给我们提供了三个属性 queryset、serializer_class、lookup_field 3)GenericAPIView给我们提供了三个方法 get_queryset、get_serializer、get_obj mixins包存放了视图工具类(不能单独使用,必须配合GenericAPIView使用) ​``` CreateModelMixin:单增工具类 create方法 ListModelMixin

JMeter接口测试-用户参数

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-22 18:34:23
前言 一个系统有两个接口,一个注册、一个登录,注册用户类型为手机号码。现想在jmeter中实现,用一个随机手机号码进行注册,然后再用这个随机号码登录。 随机手机号码注册,那就肯定会用随机函数生成手机号码,生成的这个手机号怎么用呢? 方法一、使用关联,在注册接口上增加一个后置处理器,提取注册的手机号出来,然后再用于登录及之后的接口 方法二、把注册的信息写入文件,然后再从文件中提取手机号码,然后再用于登录及之后的接口 今天,我给小伙伴们讲一下第三种方法,就是添加配置元件-用户参数,一个用户参数的变量,接收随机函数生成的号码,注册和登录等接口,都引用这个变量。 来源: https://www.cnblogs.com/zhangwuxuan/p/12346501.html

用户数据校验功能

冷暖自知 提交于 2020-02-22 05:53:44
目录 接口说明 Pojo Controller Service Mapper 接口说明 实现用户数据的校验,主要包括对:手机号、用户名的唯一性校验。 接口路径: GET /check/{data}/{type} 参数说明: 参数 说明 是否必须 数据类型 默认值 data 要校验的数据 是 String 无 type 要校验的数据类型:1,用户名;2,手机; 否 Integer 1 返回结果: 返回布尔类型结果: true:可用 false:不可用 状态码: 200:校验成功 400:参数有误 500:服务器内部异常 Pojo @Table(name = "tb_user") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String username;// 用户名 @JsonIgnore //对象序列化为json字符串时,忽略该属性 private String password;// 密码 private String phone;// 电话 private Date created;// 创建时间 @JsonIgnore private String salt;// 密码的盐值 Controller @Controller

接口测试用例设计方法

你离开我真会死。 提交于 2020-02-19 10:48:58
1.接口定义 接口:主要是子模块或者子系统间交互并相互作用的部分。如:客户端与后台服务间的协议,插件间通信的接口,模块间的接口,小到类提供的方法等。 接口测试:针对模块或系统间的接口测试。 2.接口测试发现的典型问题 传入参数处理不当,导致程序crash 类型溢出,导致数据读出和写入不一致 因对象权限未校验,可以访问其他用户敏感信息 状态处理不当,导致程序错乱 逻辑校验不完整,可利用漏洞获取非正当利益等 3.接口测试用例设计 针对输入设计 (1)数值型:如果参数规定了值的范围,则需要考虑等价类取值范围内、取值范围外,取值的边界,如有需要,可能会遍历取值范围内的各个值。 例如检查权限的接口:TaskChecker.checkTask(int taskID) taskID的取值范围是1-35,那么设计时考虑:   ●1-35范围内和范围外的值;   ●1-35的边界:0,1,35,36;   ●类型的特殊值:-1,0   ●数据类型的边界值:int的最小值最大值;   ●因为1-35代码的权限ID不同,可能需要遍历1-35的每个值。   常见问题和风险:   ●特殊值处理不当导致程序异常退出;   ●类型边界溢出   ●取值范围外未返回正确的错误信息等 (2)字符串型:字符串型的参数,主要考虑字符串的长度和内容 例如接口转换设置闹钟的接口DateUtil.getDayOfDDHH

MVC,MVP设计模式

吃可爱长大的小学妹 提交于 2020-02-17 18:39:15
什么是MVP   MVP是模型(Model)、视图(View)、主持人(Presenter)的缩写,分别代表项目中3个不同的模块。   模型(Model):负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等;   视图(View):负责界面数据的展示,与用户进行交互;   主持人(Presenter):相当于协调者,是模型与视图之间的桥梁,将模型与视图分离开来。   如下图所示,View与Model并不直接交互,而是使用Presenter作为View与Model之间的桥梁。其中Presenter中同时持有Viwe层以及Model层的Interface的引用,而View层持有Presenter层Interface的引用。当View层某个界面需要展示某些数据的时候,首先会调用Presenter层的某个接口,然后Presenter层会调用Model层请求数据,当Model层数据加载成功之后会调用Presenter层的回调方法通知Presenter层数据加载完毕,最后Presenter层再调用View层的接口将加载后的数据展示给用户。这就是MVP模式的整个核心过程。   这样分层的好处就是大大减少了Model与View层之间的耦合度。一方面可以使得View层和Model层单独开发与测试,互不依赖。另一方面Model层可以封装复用,可以极大的减少代码量。当然

接口幂等性的解决方案

余生长醉 提交于 2020-02-17 09:00:55
接口幂等性的解决方案 在编程中,幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等函数指的是那些使用相同参数重复执行也能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。比如说getIdCard()函数和setTrue()函数就是幂等函数。 幂等在我的理解里就是,一个操作不论被执行多少次,产生的效果和返回的结果都是一样的。 一个幂等的操作典型如:把编号为5的记录的A字段设置为0这种操作不管执行多少次都是幂等的。 一个非幂等的操作典型如:把编号为5的记录的A字段增加1这种操作显然就不是幂等的。 幂等的方案 1.查询操作:Select是天然的幂等操作。 查询一次和查询多次,在数据不变的情况下,查询的结果都是一样的。 2.删除操作:删除操作也是幂等的,删除一次和删除多次都是把数据删除。 因为删除操作通常是定向的,比如通过id去删除数据,如果该id在数据库中存在对应记录,则删除该记录;如果该id在数据库中不存在对应记录,也是执行的删除记录操作,只是没有实质性地删除到记录而已,却也不会有其他的副作用。 但是如果删除操作具有返回值的话,可能返回的结果会不一样,比如删除一条记录之后返回这条记录中的某个值,如果删除的数据不存在(已经在第一次的删除请求中被删除了),返回的就是空值了。 3.唯一索引

基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册

旧巷老猫 提交于 2020-02-16 23:12:33
项目地址: https://github.com/caochangkui/vue-element-responsive-demo/tree/login-register 通过 vue-cli3.0 + Element 构建项目前端,Node.js + Koa2 + MongoDB + Redis 实现数据库和接口设计,包括邮箱验证码、用户注册、用户登录、查看删除用户等功能。 1. 技术栈 前端 初始化项目: vue-cli3.0 组件库: Element-ui 路由控制/拦截: Vue-router 状态管理: Vuex 服务端 运行环境: Node.js 后台开发框架: Koa2 路由中间件: Koa-router 发送邮件: nodemailer HTTP通讯 接口请求/拦截: Axios Token认证: jsonwebtoken 数据库 MongoDB 数据库操作: Mongoose 缓存工具: Redis 2. 项目依赖: "dependencies": { "axios": "^0.18.0", "crypto-js": "^3.1.9-1", "element-ui": "^2.4.5", "js-cookie": "^2.2.0", "jsonwebtoken": "^8.5.0", "koa": "^2.7.0", "koa-bodyparser": "^4.2

学成在线(第17天)

梦想的初衷 提交于 2020-02-16 00:50:29
用户认证 用户认证流程分析 用户认证流程如下: 业务流程说明如下: 1、客户端请求认证服务进行认证。 2、认证服务认证通过向浏览器cookie写入token(身份令牌) 认证服务请求用户中心查询用户信息。 认证服务请求Spring Security申请令牌。 认证服务将token(身份令牌)和jwt令牌存储至redis中。 认证服务向cookie写入 token(身份令牌)。 3、前端携带token请求认证服务获取jwt令牌 前端获取到jwt令牌并存储在sessionStorage。 前端从jwt令牌中解析中用户信息并显示在页面。 4、前端携带cookie中的token身份令牌及jwt令牌访问资源服务 前端请求资源服务需要携带两个token,一个是cookie中的身份令牌,一个是http header中的jwt令牌 前端请求资源服务前在http header上添加jwt请求资源 5、网关校验token的合法性 用户请求必须携带 token身份令牌和jwt令牌 网关校验redis中token是否合法,已过期则要求用户重新登录 6、资源服务校验jwt的合法性并完成授权 资源服务校验jwt令牌,完成授权,拥有权限的方法正常执行,没有权限的方法将拒绝访问。 查询用户接口 Api接口 用户中心对外提供如下接口: 1、响应数据类型 此接口将来被用来查询用户信息及用户权限信息

微信服务号推送消息接口开发

馋奶兔 提交于 2020-02-15 03:18:58
1.登录微信公众开发平台 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 拿到这个以后,下面会有一个二维码生成,这二维码就是沙箱环境的测试公招号! 2.基于Django开发接口 首先把用到的URL全部贴出。 from django.conf.urls import url from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/$', views.index), url(r'^login/$', views.login), url(r'^bind/$', views.bind), url(r'^bind_qcode/$', views.bind_qcode), url(r'^callback/$', views.callback), url(r'^sendmsg/$', views.sendmsg), ] 在项目中需要用户登录,让他关注我们网站的服务号,然后给他推送消息等。 准备工作: 1.登录的装饰器 def auth(func): ''' 登录认证的装饰器函数【其实可以写成一个中间件】 :param func:

接口自动化测试之接口测试基础

大憨熊 提交于 2020-02-11 14:21:45
说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 文章目录 一、分层的自动化测试 1.传统自动化测试 2.测试金字塔 3.分层自动化测试 二、接口测试基础知识 1.接口的含义 2.接口的分类 3.接口测试 3.1 接口测试的含义 3.2 接口测试的意义 3.2.1 为什么测试接口 3.2.2 接口测试的意义 3.3 协议接口的分类 3.3.1 按系统不同的调用方式进行分类 3.3.2 按协议的不同进行分类 3.4 接口测试的原理 4.接口的组成 4.1 接口文档的内容 4.2 http 请求方法与请求参数 4.3 header 4.4 http 响应状态码 4.5 响应数据 5.怎么做接口测试 5.1 接口测试的流程 5.2 编写接口文档 5.3 通用接口用例设计 5.4 根据业务逻辑来设计用例 一、分层的自动化测试 1.传统自动化测试 基于产品 UI 层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试。 ✔ 在目前的大多数研发组织当中,都存在开发与测试团队割裂(部门墙)、质量职责错配(测试主要对质量负责)的问题,在这种状态下,测试团队的一个“正常”反应就是试图在测试团队能够掌控的黑盒测试环节进行尽可能全面的覆盖,甚至是尽可能全面的 UI 自动化测试。 ✔ 这导致,一方面测试团队规模急剧膨胀;另一方面,因为 UI 是非常易变的,所以 UI