新名词:

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

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

抓包:拦截请求。

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

需要有测试文档,包括项目、模块、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. CTypes

    参考:http://docs.pythontab.com/interpy/c_extensions/ctypes/ Python中的ctypes模块可能是Python调用C方法中最简单的一种.ctyp ...

  2. 13、Ajax的使用

    一.AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. a).AJAX = 异步 JavaScript 和 XML. b).AJAX 是一种用于创建快速动态网页的技术. 通过在后 ...

  3. CPU或以太网模块重启DHCP请求

    最近,带了一个实习生,一天: 他:师傅,PLC如何首次分配IP地址啊? 我:不是教过你了吗? 他:我怎么用BOOTP软件,半天没有反应啊? 我:..... 原来,他做实验的CPU已经被分配IP地址了, ...

  4. Python+Selenium+Unittest+HTMLTestRunner生成测试报告+发送至邮箱,记一次完整的cnblog登录测试示例,

    测试思路:单个测试集.单个测试汇成多个测试集.运行测试集.生成测试报告.发送至邮箱. 第一步:建立单个测试集,以cnblog登录为例. 测试用例: cnblog的登录测试,简单分下面几种情况:(1)用 ...

  5. web前端效率提升之浏览器与本地文件的映射-遁地龙卷风

    1.chrome浏览器,机制是拦截url, 1.在浏览器Element中调节的css样式可以直接同步到本地文件,反之亦然,浏览器会重新加载css,省去刷新 2.在source面板下对js的编辑可以同步 ...

  6. Python爬虫从入门到进阶(2)之urllib库的使用

    1.什么是Urllib(官网地址:https://docs.python.org/3/library/urllib.html#module-urllib) Urllib是python内置的HTTP请求 ...

  7. python中的MySQL使用 + pickle使用

    (1)python中有一个包“sqlite3”,可以用来进行数据库相关的操作: 参考下面一个例子: import sqlite3 import pickle img_list = [('a' , 0) ...

  8. UGUI打字机效果文本组件

    using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; ...

  9. SpringBoot 上传文件夹

    前端代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  10. 写一个python 爬虫爬取百度电影并存入mysql中

    目标是利用python爬取百度搜索的电影 在类型 地区 年代各个标签下 电影的名字 评分 和图片连接 以及 电影连接 首先我们先在mysql中建表 create table liubo4( id in ...