接口测试

1. 接口的分类:webService和http api接口
  1) webService接口:是按照soap协议通过http传输,请求报文和返回报文都是xml格式,一般要借助工具来测试接口;
  2) http api接口:是按照http协议传输的,请求报文是key-value格式,返回报文json串,一般常用的请求方式是get和post请求。
2. 接口测试其实就是功能测试,也是测试业务逻辑,只不过没有页面可以点;接口测试就是按照接口规范文档提供的调用地址、请求参数、拼接报文,发送请求检查返回结果。
3. 接口测试的必要性:
  1) 能够发现很多页面点击发现不了的bug;
  2) 提高系统的异常处理能力;
  3) 前端随便变,接口测好了,后端不用变。
4. 接口文档至少得包括:
  1) 接口的说明;
  2) 调用地址的URL;
  3) 请求参数,参数的类型,请求参数的说明;
  4) 请求方式;
  5) 返回值的说明。
5. get和post请求:
  1) get请求能直接在浏览器中发送请求;
  2) post请求需要借助工具来发送。
  3) 两者的区别:
    i get请求使用URL或cookie传参,host请求使用请求体body传参;
    ii get请求的URL在长度上有限制;post请求没有;
    III post请求比get请求安全,因为get请求数据放在URL中;
    IV get请求一般用来请求数据,post请求一般用来发送数据;get请求数据发在请求头中,post请求数据放在请求body中。
6. http状态码:http有1个状态码,来标识每次请求是否成功,常见状态码有如下几种。
  1) 200:2开头的都表示这个请求发送成功。
  2) 300:3开头的表示重定向;常见的是302,把请求重定向到别的URL了。
  3) 400:4开头的表示客户端发送的请求有语法错误;
    I 常见的401表示访问的页面需身份验证;
    II 403表示服务端拒绝访问请求;
    III 404表示没有这个页面。
  4) 500:5开头的表示服务器有异常:
    I 500代表服务器内部有异常,无法完成请求;
    II 503表示服务暂时不可用;
    III 504代表服务器端超时,无返回结果。
7. 如何测webService接口
  前提要知道测试的URL或wsdl文件,直接在soapui中导入即可,导入后能看到所有接口,填写参数调用接口, 查看返回结果即可。
8. 通用的接口用例设计
  1) 通过性验证:保证这个接口功能是好使的,也就是正常的通过性测试,按照接口文档上的参数,正常传入发送请求,看是否可以返回正确的结果。
  2) 参数组合:有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功;id传2时,传入商品id是否删除成功。
  3) 接口安全:
    1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
     2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功。
     3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
     4、密码安全规则,密码的复杂程度校验。
  4) 异常验证:异常的,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
  5) 根据业务逻辑设计用例:把业务的测试点列出来,然后造数据验证这些测试点。
9. 练习发送【获取所有学生信息】的请求,发现察看结果树-》响应数据中中文处显示的都是乱码。
 解决方法:在jmeter安装目录/bin/jmeter.properties文件中找sampleresult.default.encoding=xx, 后面xx改成utf-8,然后取消注释
10. 练习发送【添加学生信息】接口请求时,在http请求的 Body Data 中写的中文,为什么都是乱码(方框中间有个问号)
 解决方法:在jmeter安装目录/bin/jmeter.properties文件找到 JSyntaxTextArea,把注释取消就行了。
11. 练习发送【添加学生信息】接口请求时,传参中有中文,请求成功后,再从【查看所有学生信息】接口看到,中文参数显示的乱码。
 解决方法:在content-encoding中写上utf-8,将中文以utf-8格式编码,然后发送请求

jmeter

1. jmeter:跨平台的,windows mac Linux下都可以用,使用前必须装jdk。
2. jmeter参数化:
  1) 用户定义的变量;
  2) 函数生成器:
  3) 从文件中读取
3.  1) jmeter关联:获取返回的值保存起来,给其它请求用,或做其它一些处理。关联是通过jmeter的正则表达式提取器实现的。
 例子:有一个购买商品的接口,必须要先登录才能够购买商品, 那么你调用接口的时候怎么知道是否已经登录了,一般这样的都会在调用的时候传一个token的参数,服务端判断token是否过期或者token是否正确,如果正确的话,那就是登录成功了就可以买东西了。token是从哪来的呢,肯定是从登录接口返回的,因为要先登录,那这样就得先调用登录接口, 获取到token,然后把获取到的token传给购买商品的这个接口。
   2) 实际练习时候出现1个问题:正则表达式自己手动输入时,运行察看结果树一直提示“未登录”,

 而从登录返回的数据中复制json串,修改为"sign":"(.*)",后,运行提示操作成功的
 
解决方法:后来把两次操作的表达式复制到sublime Text中,就能很明显的看出原因了,提示未登录的那个表达式:后少一个空格,但在jmeter中很难看出来,加上空格即可。
4.  jmeter操作mysql
  1) 导入jar包:直接在测试计划中导入外部jar包(mysql-connector-java-5.1.7-bin.jar),或者将jar包放在jmeter安装目录的lib包中,重启jmeter即可。
  2) 配置数据库连接:mysql的URL、端口号,用户名,密码
  3) 写sql 执行sql,查看结果。

4) jdbc request从数据库查出来的结果中文显示???
    解决方法:jdbc连接配置的Database URL中加上characterEncoding=UTF-8
  5) query type为Callable Statement:执行多条sql语句
5.  jmeter path extractor下载地址:https://jmeter-plugins.org/wiki/JSONPathExtractor/
 

转载于:https://www.cnblogs.com/qiezizi/p/8028137.html

第1课:接口测试和jmeter总结相关推荐

  1. 接口测试工具-Jmeter压力测试使用

    接口测试工具-Jmeter压力测试使用 官方描述:jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jm ...

  2. 【接口测试】JMeter测试WebSocket接口

    目录 一.WebSocket简介 二.JMeter测试WebSocket接口 三.WebSocket和Socket的区别 最近老被问到WebSocket,突然想到以前大学时上Java课的时候,老师教我 ...

  3. 接口测试工具_接口测试工具Jmeter与postman - 瞎扯

    一.[开局前30秒:唠嗑] 1.今天刚刚注册的知乎,听说周边好多大牛都在用,心血来潮小菜鸟的我跃跃欲试-- 2.初次写文章,手抖内心还紧张-- 3.个人jmeter用得较多,postman较少,作为一 ...

  4. jmeter 线程执行顺序_软件接口测试工具Jmeter使用方法详解(一)

    介绍完了接口测试是什么及其内在逻辑和Jmeter的安装,从这篇文章开始我们正式开始介绍Jmeter的使用方法.如果对接口测试逻辑流程和Jmeter安装有疑问的朋友,可以看这两篇文章: 星空下:软件接口 ...

  5. 压力测试+接口测试(工具jmeter)

      jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因 为jmeter是java开发的,所以运行的时候必须 ...

  6. Python接口自动化测试框架(工具篇)-- 接口测试工具JMeter

    文章目录 前言 JMeter 环境安装 JMeter接口测试案例 快速创建JMeter接口测试计划 扩展 接口自动化测试 性能自动化测试 前言 相比使用postman做接口测试,作为测试人员,熟练使用 ...

  7. 如何使用jmeter进行接口测试?jmeter接口测试流程是怎样的

    前言 我们学习自动化测试都会用到不同的工具,那么今天笔者呢,想给大家聊聊Jmeter接口测试流程详解,废话不多说直接进入正题. 一.jmeter简介 Jmeter是由Apache公司开发的java开源 ...

  8. 接口测试学习——jmeter分布式压测

    分布式压测我理解的就是有一台主控机和几台压力机.主控机通过远程控制压力机启动测试,来实现系统不同级别访问量情况下的性能验证.操作步骤如下: 1.启动jmeter自动化工具,界面显示如下图所示. 2.在 ...

  9. 接口测试工具-Jmeter使用笔记(八:模拟OAuth2.0协议简化模式的请求)

    背景 博主的主要工作是测试API,目前已经用Jmeter+Jenkins实现了项目中的接口自动化测试流程.但是马上要接手的项目,API应用的是OAuth2.0协议授权,并且采用的是简化模式(impli ...

最新文章

  1. bat 重启资源管理器
  2. maven 插件的应用
  3. 剑指offer:跳台阶 python 实现
  4. JAVA之二叉查找树
  5. Python使用socket读取网页源代码实现简单爬虫程序
  6. 37、我的C#学习笔记3
  7. 弱电系统集成服务器,智能化弱电系统集成(BMS系统集成工程)设计方案
  8. 手绘风格的原型图制作工具
  9. 超好用的团队计划管理软件,推荐给大家~
  10. C语言中计算字符串长度的函数
  11. php汉字转拼音插件,PHP中文转拼音优质解决方案-composer转拼音第三方插件-爱测速网...
  12. 破网与立网,数字螺旋下的适者生存
  13. 31、键树的插入、查找(孩子兄弟存储结构)
  14. mysql用户配额_Oracle 用户对表空间配额quota说明
  15. 冯诺依曼 计算机名言,约翰.冯.诺依曼名言
  16. springboot学习(七十三) springboot中使用springdoc替换swagger(springfox)
  17. postman的使用-----号码归属地查询接口测试
  18. php.ini配置文件详解(mac nginx1.8.0 php5.6 )持续更新中
  19. 信息学奥赛一本通 1398:短信计费 | OpenJudge NOI 1.12 02:短信计费
  20. Android开发工程师学习指南

热门文章

  1. Stream流思想和常用方法
  2. java jconsole rmi 连接不上
  3. 2018.3.24 struct
  4. Silverlight学习笔记(3):Silverlight的界面布局
  5. .net生成文字图片
  6. Spring security/Shiro ---登陆成功后返回登陆前界面<页面重定向>
  7. 可以ping通 但ssh: connect to host 192.168.0.2 port 22: Connection refused
  8. 深度学习都是非凸问题_神经网络的损失函数为什么是非凸的?
  9. 硬件知识:U盘缩水是怎么回事,如何恢复U盘真实容量?
  10. 网络知识:为什么你家里的网速慢,看完你就懂了?