新名词:

自动化测试:
写代码帮你测试

接口:是一个抽象的概念,一种交互关系。

抓包:拦截请求。

接口测试:就是功能测试,比后者还简单。

需要有测试文档,包括项目、模块、URL、请求方式、参数、参数说明、预期结果、实际结果、成功与否
测试工具:常用的有postman&jmeter

server:服务器
user:用户端

抓包: 拦截请求。  点击右键的审查元素/检查/F12可以 点击network(出不来刷新一下)就可以出来一个接口

前端(像我们的使用界面)和后端(像抓包页面)

前端和后端是两拨人开发的,像前端手机,使用语言Android,object-c,或swift.后端语言就多了,像Java,php,.net,python,ruby等。后端人开发好后,把接口给前端人。前端需要什么,展示出来就行了。

后端的语言和前端的不同,前端肯定展示不了。所以用一种通用的语言——json.

json:所有语言都认识的一种数据类型。json出来前用的xml。json是key-value的形式。json串儿。

接口测试:

先要有一个接口文档:

请求方式:get / post

get 无需借助工具,(第一个接口)在浏览器就可以,将地址直接沾到浏览器。怎样传参数呢,在后边加上“?”然后参数名谁=谁(?key=value)就可以了。如http://api.nnzhp.cn/api/user/stu_info?stu_name=小黑。若是有多个参数,用&连接就可以了。如age=18&sex=男
注意:要输入英文字符"?",尽量粘贴
而且get没有body

post 需要借助工具

第一个接口:(get请求)打开postman→ 选get→ 输入URL(全)→ 点击hander,在下边输入key-value(stu_name 小黑)→ 点击send→ 看结果
备注:get可以直接在浏览器使用,见上边。
第二个接口:(post请求)打开postman→ 选post→ 输入URL(全)→ 点击body→在form-date下边输入key-value→ 点击send→ 看结果
第三个接口:(post请求json入参)打开postman→ 选post→ 输入URL(全)→ 点击body→点击raw→后边的语言改为JSON→下边输入json串儿(即{"key":"value",}注意格式)→ 点击send→ 看结果
备注:post请求,默认的话是key-value传参,用默认的form-date就行;写明入参json的话,要用raw。
第六个接口:(post请求上传文件)打开postman→ 选post→ 输入URL(全)→ 点击body→在form-date下边输入key→后边的value先选择为file→点击send→ 看结果

postman的body中,form-date和x-www-form-urlencode的区别,只是前者能传文件。

第三节:(cookie)接口测试、访问qq接口

打开qun.qq.com到成员管理(需要登录),开始抓包。选择搜索群成员,里边的Headers里的cookie需要找出来,还有最下边的form-date.
第四个接口:(post请求有cookie)打开postman→ 选post→ 输入URL(全)→ 点击header,输入cookie和抓包的数据→点击 body→在form-date下边输入key-value→点击send→ 看结果

cookie 用户端会key-value记录你登录的状态,会过期;

session 服务端同样会key-value记录你登录的状态。

cookie就是保存在你自己本地的一个键值对。session就是保存在服务端的一个键值对。

上边俩者都会记录,下次登录时候,服务器一对比,一样的,就表明又登录了
http://nnzhp.cn/api/user/user_reg牛牛的文档,供学习。
body用来传参,hander用来补充,比方写cookie

怎样测试接口:

post、get请求区别:

定义变量:设置→管理环境→globals→加个变量,之后用的时候,直接{(变量名称)}代替就行。
ip可以代替域名来访问:

保存collection:可以把几个接口放在一起保存起来。历史中点击...→create collection→save,已经保存。

功能测试主要还是测业务,要了解业务,然后测试功能。

接口测试用例:
1、正常的
2、异常
1)、不按接口文档上来
3、根据业务逻辑来设计不同的用例

项目 模块 url 请求方式 请求参数 预期结果 实际结果 状态

get post 区别:

http请求

请求头header

你发出去这个请求的额外信息
你用什么浏览器发的
你想让服务端给你返回什么样的数据
cookie

请求体body

正常咱们发过去的数据了

1、get请求没有请求体,只有请求头 (把参数放在url里,或cookie里)
2、get请求没有post安全,因为get把参数都写到url里面 (其实抓包都能看见,并没有哪个更安全一说)
3、get请求有参数的大小限制,post请求。(以前浏览器不好,现在没了)
4、get请求一般用来获取数据,像服务端发送数据的时候用post (get请求如百度搜索,post请求如登录)
备注:其实区别只在第一点,其他的其实没有太大区别。

Jmeter做接口脚本

打开Jmeter:无需安装,直接点击解压文件中的jmeter.dat(要先安装jdk)
文件不显示扩展名:组织→文件夹和搜索选项→查看→不要勾选隐藏文件扩展名

Jmeter:Java开发的(所以必须装JDK再使用)开源的(即免费的)性能测试工具,也可以测接口

添加第一个:get请求

线程组:得先设置一个来干活
线程数:并列的几个线程组
加一个HTTP请求:添加→sampler→HTTP请求
名称:随便改
服务器名称或IP:写域名或IP。端口:默认HTTP,HTTPS时要输入
路径:
方法:get或post
paremeters:key-value,或者写在路径后?key=value
点击运行:一个绿色的三角形标。提示保存,那就保存一下子。

添加线程组→添加HTTP请求→填写服务器名称或IP→路径→ 方法→ 参数→ 添加监听器→ 察看结果数→ 点击运行→ 查看接口的请求和响应数据

post请求:

jmeter返回中文乱码:
1、在jmeter的bin目录下,找到jmeter的配置文件,jmeter.properties,然后把
sampleresult.default.encoding=UTF-8
加到最下面
2、重新打开jmeter

jmeter bodydata里面中文乱码
1、在jmeter的bin目录下,找到jmeter的配置文件,jmeter.properties,然后把
jsyntaxtextarea.font.family=Hack
加到最下面
2、重新打开jmeter

添加第三个:入参是json类型的post请求

入参类型是json的返回乱码:
1、在content encoding中加入utf-8

添加第四个:带cookie的post请求

添加 配置元件 HTTP信息头管理器

协议默认的HTTP,如果是HTTPS,就写在协议里。

添加第五个:上传文件接口

选择file,上传文件,并在此file写参数"file"

jmeter参数化

1、jmeter 参数化
1、选项→函数助手对话框里面的
__Random 取一个范围内的随机数
__time取一个时间戳:从计算机诞生的那一天到现在过了多少秒
参数加上YYYY(4个),即只取格式化的年
参数加上YYYY MM dd HH mm ss,取到格式化的年月日时分秒
__UUID 取一串儿唯一的数字,但有些长
文件中取值:
并列建立一个活儿:添加→配置元件→CSV Data Set Config
当中filename写清楚路径(也可以直接写明儿,但文件要放在bin目录下),
variable name随便取一个名儿AAA,BBB,CCC(可只有A,带上B也行),Dlimiter中输入分隔符","。
然后在HTTP需要取值的地方输入${AAA},${BBB},${CCC},
备注:,也可以换成其他符号,如空格的

${}是取变量格式。

CSV Data Set Config:当中的recycle选择TRUE和FALSE决定是否循环

备注:右上角的注意里边有数据时,就说明有错误。

先用注册接口注册一个账号。
注意:账户名fang${__time(,)}这个串儿,部分粘贴复制的时候容易粘不干净,像fang${__time(,)}容易错变成${__time(,)}},外边儿多留个大括号。

jmeter关联:

首先建立一个有效的登录接口,然后建立一个抽奖接口。
在登录接口中,添加→ 后置处理器→ JSON Path PostProcessor
正则表达式提取器:跟JSON Path PostProcessor功能一样。
"sign": "(.*?)"表示取左边是"sign": " 右边是"的值。
缺省值:没取到

变量取值:${name} 是大括号
结果中找东西:$.A.B....

错误:userid和sign结果值写反了

jmeter压测:

TPS:服务端每秒钟处理的事务数,越大越好

响应时间:从发出动作到服务端处理完返回给客户端的时间,越短越好

接口测试——postman & jmeter的更多相关文章

  1. 接口测试工具postman/jmeter基本使用

    一.接口的分类: 最常用的两种接口webservice接口和http api接口:1.webservice接口走soap协议通过http传输,请求报文和返回报文都是XML格式,现在测试的时候都通过工具 ...

  2. 接口测试(jmeter和postman 接口使用)

    接口测试基础知识 接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.把前端(client)和后端(server)联系起来,测试的重点是要检查数据的交换,传递和控制管理过程,以及系统 ...

  3. 接口测试-postman,JMeter与LoadRunner比较

    postman是一个谷歌出的轻量级的专门测试接口的小工具~(PS:postman包括两种:Chrome浏览器插件和postman客户端,我使用的是postman客户端)虽然不如firefox的post ...

  4. 接口测试postman和Jmeter

    接口测试属于功能测试的范畴,一般来说分为两种,一种是程序内部的接口,一种是系统对外的接口. postman测试接口 1. get请求: (1) 直接在浏览器中输入接口地址+?+参数 (2)使用post ...

  5. 接口测试工具-Jmeter使用笔记(一:运行一个HTTP请求)

    博主自从毕业从事软件测试行业距今一年半时间,大多数时间都在跟各种API打交道,使用过的接口测试工具也有许多,本文记录下各工具的使用心得,以及重点介绍我在工作中是如何使用Jmeter做测试的,都是在wi ...

  6. postman+jmeter接口实例

    接口基础 一.为什么要单独测试接口? 1. 程序是分开开发的,前端还没有开发,后端已经开发完了,可以提前进入测试2. 接口直接返回的数据------越底层发现bug,修复成本是越低的3. 接口测试能模 ...

  7. 接口测试 Postman 做接口自动化测试_入门篇

    可能是目前最好用的web接口调试工具 无需注册(注册后可多终端同步用例) 免费(每年付费$60可用云服务,30天免费试用) 保存历史记录 支持录制请求 基于Chrome的V8引擎,支持JS脚本(基本支 ...

  8. Web接口测试工具--Jmeter

    关于Jmeter性能测试工具不再过多介绍.如果你要学习软件性能测试,那么多少应该会对它有所耳闻. 强烈建议阅读官方文档学习:http://jmeter.apache.org/index.html 还有 ...

  9. 接口测试工具Jmeter

    一.安装Jmeter 1.安装JDK ①下载jdk,到官网下载jdk,地址:http://jmeter.apache.org/download_jmeter.cgi ② 安装jdk(Oracle官网下 ...

随机推荐

  1. ASP.NET MVC上传文件

    最近参考网络资料,学习了ASP.NET MVC如何上传文件.最基本的,没有用jQuery等技术. 1.定义Model public class TestModel    {        [Displ ...

  2. js拖拽案例、自定义滚动条

    简单实例: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  3. Solr配置步骤

    1. 配置步骤说明 (1)配置Solr服务器. (2)配置SolrHome.(Solr服务的主目录,磁盘) (3)在Solr服务器中加载SolrHome. (4)java程序访问Solr服务器,实现全 ...

  4. UE4物理笔记

    基本 物理资源随骨骼创建,可添加到骨骼网格上. 物理材质可添加到材质或组件或物理资源上. 通过配置PrimitiveComponent组件的Collision Presets值,可实现自定义的碰撞忽略 ...

  5. 看不到git远程分支

    1.先用fetch命令更新remote索引 $ git fetch 2.再查看remote分支,发现已经可以看到目标分支 $ git branch -a 3.再切换分支 $ git checkout ...

  6. 将Chrome插件Momentum背景图片设为桌面壁纸

    Momentum简介 Momentum插件是一款自动更换壁纸,自带时钟,任务日历和工作清单的chrome浏览器插件.官方的解释就是:替换你 Chrome 浏览器默认的“标签页”.里面的图片全部来自50 ...

  7. JUC--volatiley&CAS

    public class VolatileTest { public static void main(String[] args) { ThreadDemo td = new ThreadDemo( ...

  8. 8266编译错误 xtensa-lx106-elf/bin/ld: segmentled section `.text' will not fit in region `iram1_0_seg'

    一种简单的解决办法 Okay, the solution was to copy the libgcc.a file from: esp-open-sdk/ESP8266_NONOS/lib/ to ...

  9. 基于spark-streaming实时推荐系统

    基于spark-streaming实时推荐系统(一) 基于spark-streaming实时推荐系统( 二) 基于spark-streaming实时推荐系统(三)

  10. vmware克隆虚拟机后无法联网

    1.基础知识: 就算是克隆的系统,但是由于物理地址改变了,导致rules文件进行了重新绑定 网卡会从eth0变成eth1(逐渐+1),而且mac地址和uuid也会有变化. 2.解决方法: 2.1编辑e ...