用户接口

接口测试中,数据驱动时,参数各类型,空或None的处理

江枫思渺然 提交于 2019-12-02 23:03:48
天天说接口测试,天天说数据驱动,但网上的各种教程太烂,遇到实际情况就傻眼了。 来来来,我们看一个例子 假设,有下面这样一个接口,获取用户信息,可以带的参数如下: 用户名(uname) str(),非必填 用户ID(uid)  int(), 非必填 用户电话   字典,非必填 所以接口用例就会有这种情况: 1、如果传的类型不对怎么办,比如uname,传的是整型 2、比如非必填的,传的是空或None,这两种都是不同的值 上面这2种情况在在数据驱动怎么处理?如果你的源数据是放在excel,就没法处理,所以要在写之前,约定俗成,说几点吧,给有需要的读者: 1、excel 按约定全设成文本形式 2、约定比如int( 开头的,表明是整形 3、比如输入的是None,就是None 4、为空就是不填 来源: https://www.cnblogs.com/landhu/p/11766304.html

有一次接口设计

匿名 (未验证) 提交于 2019-12-02 22:56:40
小李最近手头在做的task,需要暴露新的接口出去给客户。 ========================我是正文分割线============================= <<<<<<<需求>>>>>>> ---------------------------------------------------------------------------------------------------------- 需要暴露一个汽车特征点的接口,输入是一张图像,输出是汽车上的特征点,landmark。 ---------------------------------------------------------------------------------------------------------- so easy?输入基本不用管,输出那就定义一个结构体不就完事了吗?假设这一代的算法支持一辆车100个ladmark点。over了。 版本1 typed struct LM { uint x[100]; uint y[100]; } 方法很简单,问题很明显: 1.如果算法升级了,支持的特征点数变多了,怎么破?直接把点数写死是不是不太好? 2. 将来怎么扩展?如果需要支持更多的东西,比如车的颜色,型号等等呢? 好,所以小李就跑去跟同事讨论,最后得到了一个高灵活度的接口

微信公众号素材管理、获取用户信息、自定义菜单

别说谁变了你拦得住时间么 提交于 2019-12-02 22:11:58
  在Java开发微信公众号的基础上进行学习。学习素材管理、创建接口等操作。   所有的操作都是在获取access_token的基础上进行操作,access_token是根据appid和addsecret进行获取。(这两个参数对于个人公众号是没有的)    文中的代码只是取关键代码,完整的代码会在文章最后表明git地址。 0.获取测试账号与接口获取AccessToken   在公众号后台的开发者工具点击公众平台测试账号可以获取。 接下来以进入配置即可进行测试获取access_token: 公众平台的API调用所需的access_token的使用及生成方式说明: 1、建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务; 2、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡; 3、access_token的有效时间可能会在未来有调整

[Abp 源码分析]十二、多租户体系与权限验证

匿名 (未验证) 提交于 2019-12-02 22:06:11
承接上篇文章我们会在这篇文章详细解说一下 Abp 是如何结合 IPermissionChecker 与 IFeatureChecker 来实现一个完整的多租户系统的权限校验的。 多租户系统又被称之为 Saas ,比如阿里云就是一个典型的多租户系统,用户本身就是一个租户,可以在上面购买自己的 ECS 实例,并且自己的数据与其他使用者(租户)所隔绝,两者的数据都是不可见的。 那么 Abp 是如何实现数据隔离的呢? 如果你的软件系统仅部署一个实例,并且所有租户的数据都是存放在一个数据库里面的,那么可以通过一个 TenantId (租户 Id) 来进行数据隔离。那么当我们执行 SELECT 操作的时候就会附加上当前登录用户租户 Id 作为过滤条件,那么查出来的数据也仅仅是当前租户的数据,而不会查询到其他租户的数据。 Abp 还提供了另外一种方式,即为每一个租户提供一个单独的数据库,在用户登录的时候根据用户对应的租户 ID,从一个数据库连接映射表获取到当前租户对应的数据库连接字符串,并且在查询数据与写入数据的时候,不同租户操作的数据库是不一样的。 从上一篇文章我们知道了在权限过滤器与权限拦截器当中,最终会使用 IFeatureChecker 与 IPermissionChecker 来进行权限校验,并且它还持久一个用户会话状态 IAbpSession 用于存储识别当前访问网站的用户是谁。

linux下iptables的使用

匿名 (未验证) 提交于 2019-12-02 21:59:42
1、iptables -L 查看filter表的iptables规则,包括所有的链。 filter表包含INPUT、OUTPUT、FORWARD三个规则链 。 说明:-L是--list的简写,作用是列出规则。 2、iptables -L [-t 表名] 只查看某个表的中的规则。 说明: 表名一共有三个:filter,nat,mangle,如果没有指定表名,则默认查看filter表的规则 列表(就相当于第一条命令)。 举例:iptables -L -t filter 3、iptables -L [-t 表名] [链名] 这里多了个链名,就是规则链的名称。 说明: iptables一共有INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING五个规则链 。 举例:iptables -L INPUT 注意: 链名必须大写 。在Linux系统上,命令的大小写很敏感。 4、iptables -n -L 说明:以数字形式显示规则。如果没有-n,规则中可能会出现anywhere,有了-n,它会变成0.0.0.0/0 5、iptables -nv -L 说明:你也可以使用“iptables -L -nv”来查看,这个列表看起来更详细,对技术人员更友好,呵呵。 如果想删除iptables规则我们可以如下操作 删除用-D参数 删除之前添加的规则(iptables -A

浅析微信支付:商户平台代金券或立减优惠开通、指定用户代金券发放、查询等

匿名 (未验证) 提交于 2019-12-02 20:56:53
本文是【浅析微信支付】系列文章的第十四篇,主要讲解在如何开通商户平台的代金券或立减优惠功能,商家向指定用户发送代金券,查询发送记录,代金券信息等。 浅析微信支付系列已经更新十四篇了哟~,没有看过的朋友们可以看一下哦。 浅析微信支付:商户平台开通现金红包、指定用户发放、红包记录查询 浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户 浅析微信支付:支付验收示例和验收指引 浅析微信支付:如何使用沙箱环境测试 首先我们需要了解一下什么是代金券和立减优惠? 代金券是微信支付为商家提供的一个营销工具,他的主要功能可以简单理解为商家的满减券,比如常见的“满十减一”、“满x减x”这类,需要用户主动领取或者平台主动为用户发放,核销时会在微信支付调起界面显示优惠券信息。 立减优惠是微信支付为商家提供的另一种自主核销优惠,为何叫自主核销?因为此优惠是一个门槛,不需要用户领取,商家设置一个用户群里,比如全员优惠“满十减一”,那么所有人都可以享受这个优惠,直接在购买商品时自动扣减金额。 以上为简单的解释,下面我会结合官方文档来解释这两个优惠方式。 微信支付代金券业务是基于微信支付,为了协助商户方便地实现营销优惠措施。针对部分有开发能力的商户,微信支付提供通过API接口实现运营代金券的功能 官方文档地址: https://pay.weixin.qq.com/wiki/doc/api/tools

后端接口书写

徘徊边缘 提交于 2019-12-02 19:43:45
1、后端的接口 express myapp --view=ejs cd myapp cnpm i cnpm i bcryptjs node-uuid mongoose@4 -S 修改配置文件 package.json 添加dev指令 复制 数据库相关文件,修改用户集合 (userid,username,password,tel) 创建数据库 1908shop,修改db.js 2、实现用户的注册接口 routes/users.js var User = require('./../sql/collection/users'); var sql = require('./../sql'); var utils = require('./../utils') var uuid = require('node-uuid'); var bcrypt = require('bcryptjs'); var salt = bcrypt.genSaltSync(10); // 加密级别 // 实现注册接口 -- post提交方式 router.post('/register', (req, res, next) => { // 1、先获取表单信息 let { username, password, tel } = req.body; // 2、根据手机号查询 用户集合中是否有该用户,如果有

Spring Boot2 系列教程(十七)SpringBoot 整合 Swagger2

£可爱£侵袭症+ 提交于 2019-12-02 19:30:48
摘自: https://www.cnblogs.com/lenve/p/11756725.html Spring Boot2 系列教程(十七)SpringBoot 整合 Swagger2 前后端分离后,维护接口文档基本上是必不可少的工作。 一个理想的状态是设计好后,接口文档发给前端和后端,大伙按照既定的规则各自开发,开发好了对接上了就可以上线了。当然这是一种非常理想的状态,实际开发中却很少遇到这样的情况,接口总是在不断的变化之中,有变化就要去维护,做过的小伙伴都知道这件事有多么头大!还好,有一些工具可以减轻我们的工作量,Swagger2 就是其中之一,至于其他类似功能但是却收费的软件,这里就不做过多介绍了。本文主要和大伙来聊下 在Spring Boot 中如何整合 Swagger2。 工程创建 当然,首先是创建一个 Spring Boot 项目,加入 web 依赖,创建成功后,加入两个 Swagger2 相关的依赖,完整的依赖如下: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId>

GET和POST

别等时光非礼了梦想. 提交于 2019-12-02 18:34:32
目录 w3school给出的比较 从HTTP本身来讲GET与POST的区别 语法与语义 浏览器的GET和POST 接口中的GET和POST REST接口规范   关于安全性   关于编码   浏览器的POST需要发两个请求吗?   到底什么算请求体 关于URL的长度 w3school给出的比较 下面的表格比较了两种 HTTP 方法:GET 和 POST。 GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 书签 可收藏为书签 不可收藏为书签 缓存 能被缓存 不能缓存 编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 历史 参数保留在浏览器历史中。 参数不会保存在浏览器历史中。 对数据长度的限制 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 无限制。 对数据类型的限制 只允许 ASCII 字符。 没有限制。也允许二进制数据。 安全性 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET ! POST 比 GET 更安全

华为设备二层交换技术——Hybrid接口详解

[亡魂溺海] 提交于 2019-12-02 11:47:28
通常情况下,公司对内网的使用远远高于对外网的使用。公司的内部网络是由二层交换网络构建的,所以二层网络设计的好坏直接影响公司的正常业务。好的设计不仅使 功能得到体现,还可以应对一些未知的隐患,如线路损坏、设备损坏等。下面我们主要对华为的二层设备进行了解,不过首先要了解的就是二层设备(交换机)主要的就是——VLAN。 一、VLAN的基本概念 在传统的交换机以太网中,所有的用户都在同一个广播域中,当网络规模较大时,广播包的数量会急剧增加,当广播包的数量占到总量的30%时,网络的传输的效率会明显的下降,特别是当某网络设备出现故障时,也会不停的想网络发送广播,从而导致广播风暴的产生,是网络通信陷于瘫痪状态,那么怎么解决这个问题呢? 我们可以使用分隔广播域的方法来解决这个问题,分隔广播域有两种方法: 物理分隔:将网络从物理上划分为若干个小网络,再使用能隔离广播的路由设备将不同的网络连接起来实现通信; 逻辑分隔,将网络从逻辑上划分为若干个小的虚拟网络,即VLAN。VLAN工作在数据链路层,一个VLAN就是一个交换网络,其中的所有用户都在同一个广播域中,使各VLAN通过路由设备连接实现通信; 使用物理分隔会有很多缺点,它会使局域网的设计缺乏灵活性。例如:连接在同一台交换机上的用户只能划分在同一个网络中,而不能划分在多个不同的网络中。 VLAN的产生给局域网的设计增加了灵活性