接口测试

接口测试之AES数据加密

旧城冷巷雨未停 提交于 2020-01-15 12:28:42
在接口测试中,会遇到加密的请求数据,例如:常用的base64加密,AES加密,在这里,简述用Python转化AES的加密方法 原理 官网链接:https://pycryptodome.readthedocs.io/en/latest/src/cipher/aes.html 在线加密/解密:https://www.sojson.com/encrypt_aes.html AES加密主要包括两个步骤:密钥扩展和明文加密。 密钥扩展:将输入的密钥(16字节、24字节和32字节)进行扩展,根据密钥长度的不同,得到扩展后的密钥进行加密的轮数也不相同,个人理解为补码。 例如:对用户名进行AES加密,6位的用户名不满足16个字节,就需要补充位数。 Python实现:Crypto算法库 算法库详解: https://segmentfault.com/a/1190000016851912 安装 Crypto不是自带的模块,需要下载。http://www.voidspace.org.uk/python/modules.shtml#pycrypto 安装好引用的时候,提示找不到Crypto,找了很多资料,原因是 C:\Python27\Lib\site-packages在这个路径下面有一个文件夹叫做crypto,把它的首字母改成大写,即是Crypto 就没有问题了 简单使用 from Crypto

接口自动化测试方案详解

独自空忆成欢 提交于 2020-01-14 20:05:37
目前我们的接口都是使用的http协议,其测试的基本原理是模拟前端(客户端)向服务器发送数据,得到相应的响应数据,从而判断接口是否可以正常的进行数据交换。在测试的过程中尝试过两种方式,一种是利用性能测试工具Jmeter模拟客户端发起http请求,另外一种是使用python脚本直接编写脚本模拟客户端发起http请求。 利用Jmeter工具配置,需要对如何利用Jmeter进行性能测试熟悉,通过相应的配置可完成,但不够灵活,比如某些字段需要经过特定的加密处理,不能通过Jmeter直接完成。 所以选择直接用python脚本进行,模拟http请求也就几行代码就可完成。但只是模拟请求不是最终的目标,也需要易用,不会编码的人也会维护我们的测试用例,所以形成了现在的形态,遵循了测试框架的一些基本原则,业务逻辑与测试脚本分离,测试脚本与测试数据分离。大致框架如下图所示: 目录结构如下: 所有的测试用例使用Excel统一管理,测试数据根据需要可以选择配置在Excel中或者保存在测试数据文件中。测试用例格式如下: 日志格式如下: 测试完成后可将异常的接口通过邮件发送给相关人。以上是接口测试方案的大致介绍,下面给大家说说具体怎么配置用例。 如何进行测试 测试的核心脚本已经搭建好,后续不会有太大的改动,维护测试用例的Excel表格即可完成后续接口的测试,不管是新接口的测试还是老接口的回归

linux 测试post接口

牧云@^-^@ 提交于 2020-01-14 06:58:23
我们在window中测试接口,通常使用postman,但是遇到一个问题,联调接口时,因为权限问题,只能在linux上测试接口是否开通。最后通过crul解决了这个问题。 1. post 访问 网址?name='张三'&password='123' header为content-type=application/x-www-form-urlencoded curl -H 'content-type: application/x-www-form-urlencoded' -X POST -d "name=zhangsan&password=123" https://www.baidu.com 来源: CSDN 作者: guangyingposuo 链接: https://blog.csdn.net/guangyingposuo/article/details/103804459

robotframework笔记24

旧巷老猫 提交于 2020-01-14 01:45:32
侦听器接口 机器人框架有一个侦听器接口,可以用于接收 对测试执行通知。 示例用法包括 外部测试监控,测试失败时发送邮件消息, 与其他系统进行通信。 侦听器API版本3也使得 它可以修改测试在测试执行和结果。 侦听器类或模块与某些特殊的方法,和他们 可以用Python和Java实现。 侦听器监控 整个测试执行必须纳入使用从命令行。 除此之外, 测试库可以注册侦听器 接收 通知,图书馆是活跃的。 监听使用 监听被使用从命令行 ——侦听器 选项,侦听器是给它的名称作为参数。 的 侦听器的名称叫从类或模块实现 监听器接口,同样 测试库的名字 从类 实现它们。 指定监听器必须是相同的 模块搜索 路径 在测试库搜索时都是进口的。 其他 选择是给听众一个绝对或相对路径文件 同样与测试库 。 可以把多个侦听器 通过多次使用这个选项使用: robot --listener MyListener tests.robot robot --listener com.company.package.Listener tests.robot robot --listener path/to/MyListener.py tests.robot robot --listener module.Listener --listener AnotherListener tests.robot 还可以给侦听器类从命令参数

java 泛型详解

◇◆丶佛笑我妖孽 提交于 2020-01-13 18:30:37
https://blog.csdn.net/s10461/article/details/53941091 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下。 本文参考java 泛型详解、Java中的泛型方法、 java泛型详解 1. 概述泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用。 什么是泛型?为什么要使用泛型? 泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。 泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。 2. 一个栗子一个被举了无数次的例子: List arrayList = new ArrayList();arrayList.add("aaaa");arrayList.add(100); for(int i = 0; i< arrayList.size();i

Go Web 编程之 响应

空扰寡人 提交于 2020-01-13 15:24:36
概述 上一篇文章中,我们介绍了请求的结构与处理。本文将详细介绍如何响应客户端的请求。其实在前面几篇文章中,我们已经使用过响应的功能——通过 http.ResponseWriter 发送字符串给客户端。 但是这种方式仅限于发送字符串。本文我们将介绍如何定制响应的参数。 ResponseWriter 接口 如果你看了我前面几篇文章,应该对处理器和处理器函数都非常熟悉了。处理器函数即拥有以下签名的函数: func (w http.ResponseWriter, r *http.Request) 这里的 ResponseWriter 其实是定义在 net/http 包中的一个接口: // src/net/http/ type ReponseWriter interface { Header() Header Write([]byte) (int, error) WriteHeader(statusCode int) } 我们响应客户端请求都是通过该接口的 3 个方法进行的。例如之前 fmt.Fprintln(w, "Hello World") 其实底层调用了 Write 方法。 收到请求后,多路复用器会自动创建一个 http.response 对象,它实现了 http.ResponseWriter 接口,然后将该对象和请求对象作为参数传给处理器。那为什么请求对象使用的时结构指针 *http

接口测试基础

强颜欢笑 提交于 2020-01-12 17:01:25
1. 什么是接口测试   接口测试是验证系统组件间接口数据交互的测试。重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试属于功能测试, 是通过接口文档上的调用地址、请求参数、拼接报文,然后发送请求,检查返回结果。 2. 接口测试必要性   可以发现页面操作发现不了的bug   检查系统的异常处理能力   检查系统的安全性、稳定性   前端发生变化,接口测试好了,后端无需再做改动 3. 接口测试流程     a 需求评审,熟悉业务和需求   b 开发提供接口文档   c 编写接口测试用例   d 用例评审   e 执行测试   f 提交测试报告   3.1 接口文档必备要素     接口说明     调用url     请求参数     请求方式     请求参数、参数类型、请求参数说明     返回参数说明   3.2 接口请求报文拼接方式       url拼接         url拼接规则为:Url?param1=value1&param2=value2         问号前面是请求url,后面是请求参数和参数值,多个参数用&连接         如:https://api.douban.com/v2/book/search?q=邹伟伟       json串         需要测试工具完成,如postman、jmeter等

Python接口测试学习笔记(一) - HTTP协议

旧巷老猫 提交于 2020-01-12 13:21:26
本文学习笔记整理自 【Python开发】接口测试教程 一. HTTP 1. HTTP(超文本传输协议)是一个基于请求与响应模式的, 无状态的, 应用层的协议 2. URL详解: 名称 解释 举例 http/https 协议类型 https ://cn.bing.com/search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D host 主机地址或域名 192.168.xx.xx:8080 地址+端口号 www.baidu.con 域名 localhost:8080 本机地址 https:// cn.bing.com /search?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid=D0FD6D60832647288D39279E36BE460D port 端口号(默认端口号是80,可省略) http://192.168.xx.xx: 8080 / (其中192.168.xx.xx是主机地址) path 请求的路径 https://cn.bing.com/ search ?q=test&qs=n&form=QBLHCN&sp=-1&pq=test&sc=8-4&sk=&cvid

白盒用例测试程序/go实现

北城以北 提交于 2020-01-12 09:03:49
简单介绍一下白盒测试: 源码公开,清楚传参、返回值和处理逻辑; 我们在测试一个方法或者接口时,通过传入合法或者非法的参数,并且抽选一些具有代表性的值作为测试用的合法传参,通过模仿正常请求,检测方法或接口内部的异常。 周末没事,又想学习一下go,最近又老写bug,所以就想到用go写一个测试进程,实现白盒`用例`测试 用到的数据结构简单介绍一哈: 用Clinet表示一个正常的客服端, ClientPool是一个Client连接池,复用客户端与服务端的套接口连接( 即在http请求头中包含 `connection: keepAlive` ),减少了端口的开销,就可以实现100w的请求量;由于是在本地开启的服务端和客户端,如果使用短连接的话,将会有许多套接口处于` TIME_WAIT `状态,多到再无可用端口,客户端( 如将`MaxConnsPerHost`置为小于0的数值,当一次请求完成后,客服端就会主动关闭套接口 )和服务端( 如将`DisableKeepAlive` 为 false ,那么一定时间内客服端都没有发送消息给服务端,服务端将会主动关闭套接口;而将`DisableKeepAlive` 为 true的话,服务端也会在http请求应答发送完毕后,主动关闭连接 )的正常连接会受到影响从而影响了测试( 主动关闭的套接口状态会转为`TIME_WAIT`,一般情况下,在 `2ML时间内

为什么前后端分离了,你比从前更痛苦?

别说谁变了你拦得住时间么 提交于 2020-01-12 08:24:38
你有没有遇到过: 前端代码刚写完,后端的接口又变了。 接口文档永远都是不对的。 测试工作永远只能临近上线才能开始。 为什么前后端分离了,你比从前更痛苦?   前后端分离早已经不是新闻,当真正分离之后确遇到了更多问题。要想解决现在的痛,就要知道痛的原因: 为什么接口会频繁变动?    设计之初没有想好。 这需要提高需求的理解能力和接口设计能力。    变动的成本较低。   德国有句谚语:“朝汤里吐口水。” 只有这样,才能让人们放弃那碗汤,停止不合理的行为。前后端同学坐在一起工作的时候效率会有提升,当后端同学接口变化时,只需要口头上通知一下即可,我们没有文档,我们很敏捷啊。没错,我们需要承认这样配合开发的效率会很高,但是频繁的变动会导致不断返工,造成了另一种浪费,这种浪费是可以被减少,甚至是被消除的。 为什么接口文档永远都是不对的?   接口文档在定接口时起到一定作用,写完接口就没有用了。后面接口的频繁变化,文档必定会永远落后于实际接口,维护文档的带来了一定的成本却没能带来价值。除非对外提供的接口,否则文档谁来看呢?没人看,用处又在哪?   有些公司干脆丢掉接口文档,说我们要拥抱敏捷。   所以接口文档落后的原因在于 没有给我们带来价值 。 为什么测试工作永远只能临近上线才能开始?   一个需求,后端开发 4 天,前端开发 4 天,联调 4 天,留给测试同学只有2天时间甚至更少