首页 > 其他分享 >自动化测试学习之接口测试

自动化测试学习之接口测试

时间:2024-11-14 18:47:34浏览次数:3  
标签:HTTP 请求 登录 GET 接口 充值 测试 自动化

在我们学习接口测试之前首先需要知道两点,什么是接口?HTTP协议的请求过程和请求方法?

一、什么是接口?

  接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。

  系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,

从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。

  程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交

互,它就会抛出一个接口,供内部系统进行调用。

  总之,接口就是从数据库里面取数据库、插入数据。

二、关于HTTP协议

2.1  HTTP协议用于客户端和服务端之间的通信。

请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务端。

注:应用HTTP协议时,必定是一端担任客户端的角色,另一端担任服务端的角色。

2.2  使用方法下达命令

方法的作用在于,可以指定请求的资源按期望产生某种行为。常用的方法有GET和POST。

关于POST和GET方法的区别:

  1、get请求只有请求头,没有请求体,它的参数是写在url里面;

  2、get请求一般用来向服务器获取数据,post请求呢用来向服务器发送数据;

  3、get请求有参数长度限制,post请求没有;

  4、get请求没有post请求安全;

三、常用的接口测试工具

常用的接口测试工具主要有Postman和Jmeter。

Postman提供的功能相对比较简单,可以模拟和发送HTTP请求,并返回接口的数据。

Jmeter相比Postman功能更加强大,Jmeter提供用例的批量执行、接口返回结果的断言以及测试报告的生成等,主要用于测试接口的性能,验证接口处理并发的能力。

我们先启动Jmeter,写一个简单的接口测试脚本,这里使用的是Jmeter5.0+1.8JDK(环境配置就不在此讲述了)

1、右击【测试计划】,添加一个线程组(添加——线程——线程组)

  右击该线程组,选择取样器——HTTP请求

  右击该线程组,选择监听器——查看结果树

2、 点击【启动】运行该脚本,查看响应数据

刚刚完成了一个基础的接口测试脚本,使用的方法是GET方法,而实际上GET请求,不需要借助任何的工具,在浏览器里面就可以发请求。

下面我们使用POST请求做一个登录接口的脚本。

注:除GET请求外,其它请求方法都需要借助工具来实现

还需注意的一点,如果我们添加多个HTTP请求且它们的域名或IP一致时,可以用HTTP请求默认值

当请求的入参方式为key-value时,我们选择底部的【参数】上传即可

入参是json类型时,选择底部的【消息体数据】

如需上传文件,选择【文件上传】

点击【察看结果树】,查看登录接口返回的响应数据

 通过上面的两个脚本我们学会了POST和GET请求,那么新问题又来了,如果我再加一个请求,此请求的参数需要用到上面请求的响应数据,那这个脚本该如何去做呢?

示例:学生金币充值接口,这个接口是为了讲添加cookie以及身份验证的,该接口有权限验证,需要admin用户才可以做操作,需要添加cookie,cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign

具体思路:

1、先登录具有admin权限的账号,获取响应数据中的sign,即seesionid,

2、从查询学生信息的接口里面随便找一个学生的stu_id

3、然后把获取到的sign信息和stu_id传入金币充值的接口

在学生金币充值下,添加一个HTTP信息头管理器,名称:cookie,值:登录用户的账号=sign

这里也可使用HHTP Cookie管理器,但不推荐使用

点击【启动】,运行该脚本,我们可以看到,该学生的金币显示为200,充值前为100。

那么问题来了,如果切换登录的用户呢?或者对登录用户进行参数话,那么我们是否每次都要重新添加一次SessionID呢,答案是否定的,我们可以使用Json提取器(因为接口返回的数据是Json格式)来获取SessionID,获取后把sign传入到学生金币充值的HTTP信息头管理器中

查看金币是否充值成功

标签:HTTP,请求,登录,GET,接口,充值,测试,自动化
From: https://blog.csdn.net/weixin_40702604/article/details/143754281

相关文章

  • 性能测试之JDBC连接、分布式负载
    一、JmeterJDBC连接Jmeter支持连接数据库,对SQL语句进行性能测试,JDBCConnetctionConfiguration用来配置连接信息。1、把JDBC驱动的jar包引入测试计划Jmeter要连接mysql数据库,首先得下载mysqljdbc驱动包,这里使用的是mysql-connector-java-5.1.7-bin.jar选择测试计划——......
  • 第八课 Python自动化之selenium
    python+seleniumselenium是一个第三方库,python有很多库;1、什么是ui自动化?通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。2、ui自动化的优点?(1)解决重复性的功能测试和验证(2)减少测试人员在回归测试时用例漏测和验证点的漏测(3)减少冒烟测试,回归测试的......
  • 你的WAF是否真的安全?雷池社区版的安全能力测试
    你的WAF能力如何?雷池社区版的安全能力测试最近雷池社区版很火,各大技术群都在讨论什么是雷池?引用官网文档的一段话:SafeLine,中文名 "雷池",是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。雷池通过过滤和监控 Web 应用与互联网之间的 ......
  • python——多线程、多进程接口测试multiprocessing
    一、线程、进程的区别https://www.zhihu.com/question/25532384二、实际使用场景登录3个用户,然后用这3个用户的session,进行10个进程,或者10个线程的操作(因为登录后没有退出登录,也没有被其他地方登录挤掉账号,所以session在一段时间内有效。且当前系统允许使用同一个session进行多......
  • python自动化之selenium
    python+seleniumselenium是一个第三方库,python有很多库;1、什么是ui自动化?通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。2、ui自动化的优点?(1)解决重复性的功能测试和验证(2)减少测试人员在回归测试时用例漏测和验证点的漏测(3)减少冒烟测试,回归测试的......
  • Postman接口测试从入门到精通(二)
    十一、Postman批量运行测试用例十二、Postman数据驱动之cSV文件和JSON文件的处理十三、测试必须带请求头的接口常见的请求头:Host请求的主机地址connection  连接方式Accept客户端接收到的数据格式×-Requestea-Wih异步请求 User-Agent  客户端的用户类型Reterer  ......
  • H.265流媒体播放器EasyPlayer.js播放器测试的时候遇到请求的连接(播放地址)跨域报错
    EasyPlayer.js播放器是TSINGSEE青犀流媒体组件系列中关注度较高的产品,经过多年的发展和迭代,目前已经有多个应用版本,包括RTSP版、RTMP版、Pro版以及js版,其中js版本作为网页播放器,受到了用户的广泛使用。在功能上,EasyPlayerH.265流媒体播放器支持直播、点播、录像、快照截图、MP......
  • 当webservice接口调用遇到跳板机地址转发时的问题
    问题描述:    A服务器有一个webservice服务端接口,B服务器需要访问A服务器时需要中间C堡垒机通过nginx转发一下,这是访问时就会出现一个问题,B访问的时候是要访问A的地址还是C的地址?解决办法1:    需要在跳板机上的nginx上需要修改一下配置即可,详细代码配置如下:解决办法2......
  • 信创符合性测试报告的测试依据是什么?测试报告是什么样的?
    一、符合性检测的三个基本指标1:系统可以成功适配国产化环境,即至少满足获得了“信创产品测试报告”2:系统的质量(如:功能性、性能效率、安全性等)要满足项目要求和国家相关标准要求3:系统的产业供应链是安全的二、报告中要素分析1.测试依据测试依据的标准包括:GB/T25000.51-20......
  • 黑客技术渗透测试零基础入门教程—一文讲清什么是内网渗透!
    前言这是晓晓给粉丝盆友们整理的网络安全渗透测试入门阶段内网渗透与防御教程喜欢的朋友们,记得给我点赞支持和收藏一下,关注我,学习黑客技术。一.什么是内网渗透内网渗透是指攻击者已经进入了目标系统的内部网络,通过侧信道攻击、横向渗透等方式进一步控制系统,获取敏感信息......