一.接口测试的基本思路 1.确定要测试接口的请求类型.接口是get请求还是post请求. 2.确定接口的参数.需要传输的参数有哪些,类型分别是什么,都有哪些要求等. 3.按照参数要求构造请求需要的参数,构造其他的请求信息,模拟发出请求. 4.对http请求返回的响应体进行解析,对解析中的部分或全部字段和预期结果进行对比. 除此之外,要模拟发送请求还有一些额外的操作,如登录要操作的系统.获取对应的权限等. 二.请求参数数据的构造 1.GET请求 直接拼写 只有一个参数,则直接拼写在域名后边:Str…
我们自己用java写接口自动化测试框架或者做个接口自动化测试平台的话,是需要自己进行相关的请求的,因此我们需要简单的封装下httpclient,我新建了一个http工具类,将get方法和post方法进行了一个简单的封装. 如果是开发的话,比如APP开发,无论是iOS还是Android,是需要将数据请求进行十分严密的封装的,因为需要对各种网络状态,请求状态做相应的判断处理,因为需要通过这些判断来做出相应的UI交互界面来给用户提示,那么我们做接口测试的话是不需要这么严密的,因为测试的前提就是要保证测…
python接口自动化(delete请求) 一.delete请求的目的:删除资源 二.应用 导包:import requests 调用delete方法:requests.delete(url) 获取响应状态码:r.status_code #导包 import requests #调用delete方法 url='http://****' r=requests.delete(url) #获取响应状态码 print(r.status_code)…
python接口自动化(put请求) 一.put请求的作用:更新资源 二.应用 导包:import requests 调用requests.put()方法 参数有URL.data.headers,方法同post请求 响应r.json()-json格式的响应,r.status_code响应的状态码 import requests import requests #2.调用post方法 #请求的URL url='https://www.*******/pc/member/sign/' #请求头 he…
python接口自动化(post请求) 一.post请求的作用:新增资源 二.data格式的参数请求(data是字典对象) #1.导包 import requests #2.调用post方法 #请求的URL url='https://www.******/pc/member/sign' #请求头 headers={'content-type':'application/x-www-form-urlencoded'} #请求的参数 data={'flag': 'mobile', 'password…
python接口自动化(get请求) get请求的目的:查询资源 一.导包 二.请求的URL 三.请求的参数 四.获取请求的URL 五.获取响应的状态码 六.获取响应的本文信息 #导包 import requests #调用get r=requests.get('https://www.baidu.com')#r为响应数据对象 #获取URL print("URL地址为:",r.url) #获取code print("响应状态码为:",r.status_code) #…
前言:接口自动化实现自动化脚本比较稳定,主要用到requests模块,后面我会把这个模块单独拉出来写一下. 一.环境安装 1.用pip安装requests模块 >>pip install requests 注意:pip很容易就会版本升级, 方法1:检测并更新 pip list –outdated 方法2: ♦先卸载: pip uninstall packagename ♦在用:easy_install.exe安装 easy_install.exe pip 二.get请求 ♦1.导入reques…
postman 是一款强大网页调试工具的客户端,postman为用户提供强大的 Web API & HTTP 请求调试功能.postman能够发送任何类型的HTTP 请求 (GET, HEAD, POST, PUT..),附带任何数量的参数+ headers,是一款非常实用的调试工具.需要的朋友快来下载吧. 相似软件 版本说明 软件地址 postman软件特色 支持各种的请求类型: get.post.put.patch.delete 等 支持在线存储数据,通过账号就可以进行迁移数据 很方便的支持…
❝ 今天来介绍一个python的一个开源项目:httprunner,接口自动化工具.第一次输入,难免有不周到的地方,轻喷~ ❞ 介绍: HttpRunner是一个简单优雅但功能强大的 HTTP(S) 测试框架.以YAML或JSON格式定义测试用例,保障测试用例描述的统一性和可维护性.程序执行的时候,会处理用户输入的yml/json文件并基于模板生成测试文件.最终通过pytest.main([])的方式去执行生成的用例文件.用户只需要通过json/yml文件去维护用例即可,不需要关心程序如何处理j…
1.首先在excel中填写好预期结果的值 这里判断接口成功的依据是预期结果值是否存在于接口的返回数据中. 一般接口的返回值都是json对象,我们需要将json对象转换为json格式的字符串 如下图,进行转换 我们从excel文件解析出来的预期结果也是str类型,这样就可以将两者进行对比,判断excel中的预期结果是否存在于接口的返回数据中 2.使用if进行判断,一个简单的demo # coding:utf-8 import requests, json url = 'http://192.168…
由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今天先来总结一下requests库的用法.希望对大家(尤其是新手)有帮助哦!大家可要仔细阅读,加油! // // 目录隐藏目录显示目录 1.GET请求   1.1查看get函数的使用   1.2 requests的get函数的入参说明   1.3 requests函数的返回值(http响应)   1.…
前言 说到python发送HTTP请求进行接口自动化测试,脑子里第一个闪过的可能就是requests库了,当然python有很多模块可以发送HTTP请求,包括原生的模块http.client,urllib2等,但由于原生的模块过于复杂,使用繁琐,那么requests库就诞生了,它也是现阶段比较流行的接口自动化测试工具之一 requests是个第三方库,封装了HTTP请求的所有方法,使用方便简单,只需要根据不同的请求方式调用相对应的方法就可以完成发送网络请求的整个过程,那么今天我们就来说说requ…
一.概念 Postman的Tests本质上是JavaScript代码,通过我们编写测试代码,每一个Tests返回True,或是False,以判断接口返回的正确性. 其实,每一个Tests实际上就是一个检查点. 二.使用场景 需要检查请求结果或http状态码的正确性. case较多. case需要重复执行,比如每次版本迭代时的例行回归. 对结果的检查比较复杂,比如要求结果要返回10条内容,难道你每次都要数一下嘛? 如果你在做接口测试时出现以上任一场景,势必会耗费很多重复且无脑的人力成本.这个时候,…
pom.xml新增dependency <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.4</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId&…
接口成功时返回: { "reCorde": "SUCCESS", "data": { ", "verify": "e7fc4b0d5605f3fade56f6d513730321", "userName": "13E28C361F75D546E8B688C2851A15D6", "token": "a1U93kb4xkFq89&…
一.痛点:一条测试数据对应一个测试方法 前面的章节中我们已经写代码实现了登录接口的处理调用,但是一个接口往往是需要多条测试用例才能完整的覆盖到每一种情况. 针对于单接口多条测试用例需要执行的情况,该如何处理呢? 可能很多人最先想到的就是:一条测试数据对应一个测试方法? 下面有一个注册接口,我们基于此思路来编码实现接口的完整测试. 1) 接口业务:会员注册 2) 接口地址:http://119.23.241.154:8080/futureloan/mvc/api/member/register 3…
一.requests背景 Requests 继承了urllib2的所有特性.Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码. 二.requests安装 利用pip安装:$ pip install requests 三.requests使用 GET请求 1.基本的GET的请求 response = requests.get("http://www.baidu.com/"…
requests是模拟HTTP.https请求接口. 一.HTTP协议介绍 1.1HTTP协议特点 1.2HTTP协议组成 请求方法 主要的请求方法有:GET.POST.DELETE .PUT .HEAD 等方法 最最常用的方法就是:GET方法.POST方法 get与post方法的特点: GET方法: GET 方法提交数据不安全,数据置于请求行,浏览器地址栏可见; GET 方法URL长度每个浏览器限制数量不同,最后在2000字符以内 GET方法速度快 默认的请求方法,不需要提交大量数据.无敏感.…
pom.xml  文件中dependency <dependencies> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>6.14.3</version> </dependency> <dependency> <groupId>com.relevantco…
pom.xml导入包 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO…
协议 简单理解,计算机与计算机之间的通讯语言就叫做协议,不同的计算机之间只有使用相同的协议才能通信.所以网络协议就是为计算机网络中进行数据交换而建立的规则,标准或约定的集合. OSI模型 1978年国际化标准组织提出了“开放系统互联网参考模型”,即著名的OSI模型.它将计算机网络体系结构的通信协议划分为7层,自上而下分别是:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层.(7层网络默认具体是什么自行百度) 那么们的今天的主题HTTP协议就在应用层,也是应用层使用最多的协议 HTTP…
常见的post传递参数的类型有以下两种: 第一种:application/x-www-form-urlencoded,浏览器原生的form表单,格式如下:input1=xxx&input2=ooo 第二种:application/json ,这是常见的json格式,格式如下:{"input1":"xxx","input2":"ooo","remember":false} 1.以表单形式传递参数 只需…
1.没有参数的get请求 import requests r=requests.get('http://docs.python-requests.org/zh_CN/latest/user/quickstart.html') print(r.status_code) print(r.text) print(r.content) 这里的r 也就是response,请求后的返回值 response 返回的内容: --r.status_code:响应的状态码 --r.text:字符串方式的响应体,会根…
1.http(超文本传输)协议:是一个基于请求与响应模式的.无状态的(不会记住每个请求的状态).应用层协议 2.url详解 https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=baidu&wd=http%E5%8D%8F%E8%AE%AE%E9%9D%A2%E8%AF%95%E9%A2%98%E5%9B%9E%E7%AD%94&oq=docker&rsv_pq=e37e8cd70026…
实战教程篇 前言 这边就不教大家怎么用 pytest 写项目了哦,下面有系列文章能帮助你快速入门 Pytest + Allure 这一篇教程主要是教如何从 0 到 1 搭建自动化测试的持续集成环境 后续会补充持续集成相关理论知识 四步走 使用 Jenkins 镜像创建容器,并搭建 Python + Pytest +Allure 的自动化测试环境 https://www.cnblogs.com/poloyy/p/13954637.html 在 Jenkins 容器上的搭建持续集成环境和完成自动化测…
在maven项目的pom.xml文件中导入TestNG <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ma…
这里使用Idea创建Maven项目, 过程非常简单, 装好JDK和Idea 1. 安装完后,打开Idea, 选择File→New→Project, 如图 2. 选择maven, 点击Next, 如图 3. 填写域名, 项目名, 版本号, 点击Next, 如图 4. 选择项目路径, 点击Finish, 如图 5. 完成…
实现代码如下: import requests r=requests.get('https://www.baidu.com',verify=False) rr=r.content.decode() print(rr)…
在进行robotframework  接口自动化,在请求体参数中输入中文会报以下错误: UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 9: ordinal not in range(128)..... 改mimetypes.py文件,路径位于python的安装路径下的Lib\mimetypes.py文件.在import下添加如下几行:解放参考如下: if sys.getdefaultencoding() …
上一篇实现数据分离升级版--从DB获取数据,以及对应的请求实现,作为一个case,还缺少了预期结果与实际结果的获取及对比.因为前面的文章已经说过接口返回值的获取及对比,所以这篇不说这块了,这篇说一下DB存储部分的获取. 上一篇有提过如何从服务器获取mysql二进制日志获取操作涉及到哪些DB变化.我们手工新增后,可以看到对应的数据库结果,其中主要分三块:①手工输入的内容:②数据库自己生成的内容,如自动生成的递增id:③被测代码生成的内容,如uuid.版本信息.其中①的部分是我们主要要校验的,②.③…