python学习-Day1-接口测试
- 学习内容:接口测试
- 学习方式: 通过工具测试http接口
- 工具:postman + jmeter
基础知识
一、 接口调用测试:接口请求报文拼接
1. 问号前是url,后面是参数名和参数值,多个参数用&连接:
url?param=value¶m2=value2如:https://api.duoban.com/v2/book/search?name=新华字典
标黄字体是ip , 标红字体是路径
2. 入参是Jason串的,{"myKey":values};,就不能拼接参数了,需要借助工具来完成,如Postman、jmeter
二、 GET和POST请求及它们的区别
GET请求直接在浏览器里输入即可,只要在浏览器里直接能请求到的,都是get请求;
post请求则需借助工具发送。
区别:
1. get请求没有请求体,只有请求头,使用URL或者cookie传参
2. get没有post安全,因为get把参数都写在了url里(其实post请求通过抓包也可看参数)
3. get有参数大小限制因为url长度上的限制,post没有(现在都没有限制了)
4. get一般用来获取数据的,一般向服务器端发送数据用post
三、HTTP状态码
每发出一个http请求后,都会有一个响应,http本身会有一个状态码来标识这个请求是否成功,常见的状态码有以下几种:
1. 200: 2开头的都表示这个请求发送成功,最常见的就是200,代表这个请求是OK的,服务器也返回了。
2. 300: 3开头的代表重定向,最常见的是302,把这个请求重定向到别的地方了。
4. 400:代表客户端发送的请求有语法错误,401代表访问的页面没有授权,403代表没有权限访问这个页面,404代表没有这个页面。
4. 500: 5开头的代表服务器有异常,500代表服务器内部异常,504代表服务器端超时,没有返回结果。
工具使用简介
一、jmeter
1. 介绍:jmeter是java开发的一款开源的性能测试工具,也可进行接口测试。
2. 安装:无需安装,配置好环境(jdk)后,直接双击运行包里bin目录下的jmeter.bat即可。
3. 运行后的中文乱码问题解决方案,参见如下两步:
a. 在jmeter的bin目录下打开jmeter的配置文件jmeter.properties -》将 sampleresult.default.encoding=UTF-8 加到最后一行 -》保存
b. 重启jmeter即可
4. 发送GET、POST请求及结果查看
(添加http请求方法:添加 -》Threads(Users)-》线程组 -》右键线程组 -》添加 -》Sampler -》HTTP请求)
a. GET请求
b. POST请求
c. Files Upload
上传文件时对应的MIME类型:https://www.jianshu.com/p/f23f7fe20bf3
d. 查看结果树
5. 响应断言
6. 用户定义的变量
7. HTTP信息头管理器
如想在请求结果中查看发送的cookie,选用HTTP Cookie 管理器功能,并在jmeter的配置文件jmeter.properties中将#CookieManager.save.cookies=false改为CookieManager.save.cookies=true
8. 参数化:选项 -》函数助手对话框
a. _Random: 输入区间值范围 -》生成 -》拷贝生成的函数字符串作为参数 ${__Random(1,999,)}
b. _UUID: 取到的每一个值都是唯一的,但位数长 ${__UUID}
c. _time: 不输入直接生成,则会取当前时间戳(概念:从计算机诞生的那一天到现在过了多少秒)且精确到毫秒。
时间格式可自定义为格式化好的时间,如年月日时分秒则写为yyyyMMddHHmmss
参数化方法总结:
1、用户定义的变量
这种就是为了方便管理参数,只能有一个值,比如说ip地址不经常变化的
2、函数生成器
函数生成器可以参照一定的规则生成数据,这样的比如说生成一些随机数
3、从文件中读取
文件读取就是事先写好一些数据,然后从文件中读取,这样的话,比如说登录接口,账号和密码都是我们事先注册好的
9. 关联:从上一个接口获取一个结果,给下一个接口当入参用,可使用如下两种方式:
(jmeter设置路径为选中要从其响应结果中获取参数的http请求 -》右键 -》添加 -》后置处理器 -》正则表达式、JSON Extractor)
a. 正则表达式:复制返回结果中想要进行关联的字段+返回值,将返回值用(.+?)代替,如 "userId": (.+?)\n
b. JSON Extractor: 需注意路径写法,前几级(根据大括号数量)用“.”代替,上一级用上一级名称,最后在加上“.字段name”
二、 Postman
1. GET请求
2. POST请求
3. 入参中需上传文件
4. 添加信息头
5. 全局变量设置
python学习-Day1-接口测试的更多相关文章
- Python学习-day1
Mark一下,python学习. 今天一天已1.5x的速度看完了Alex老师的第一周的视频,先是4节鸡汤课,而且给了勺,讲述了python目前在世界的地位,发展趋势,以及未来的愿景. 最重要的还是写一 ...
- python学习——DAY1
日期:20170113 一.个人体会: 零基础学python,是艰辛的,需要付出和坚持. 关于流程图.我最开始画的是从上到下,再从左到右,画了很多重复的内容,单线程的流程图,看起来很容易理解,但是自己 ...
- python学习Day1 计算机原理编程思维
一.学习思想:3W+1H 学什么(what).为什么学(why).用在哪里(where).怎么用(how) 学习编程语言重在代码量.代码量.代码量! 二.计算机五大组成部分,三大核心: 五大组成部 ...
- python学习day1
python简单介绍: Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种 ...
- Python学习day1 初识python&环境安装
day1 环境安装-计算机基础 环境安装参见 https://blog.csdn.net/ling_mochen/article/details/79314118 1.markdown基本语法 htt ...
- python学习 day1 (3月1日)
01 cpu 内存 硬盘 操作系统 CPU:中央处理器,相当于人大脑. 飞机 内存:临时存储数据. 8g,16g, 高铁 1,成本高. 2,断电即消失. 硬盘:长期存储大量的数据. 1T 512G等等 ...
- huyingsakai的Python学习day1:计算机硬件
1.python是什么?Python是一门编程语言 2.什么是编程语言?(*****)程序员和计算机沟通交流的介质 3.什么是编程?(*****)编程就是程序员想把内心表达的方法用某种计算机语言思维表 ...
- Python学习-Day1(Typora软件与计算机)
学习总括 Typora软件介绍(markdown语法) 相关拓展知识 文件的后缀名是什么? 什么是语言? 什么是编程语言? 什么是编程?(程序员写代码的本质) 计算机的五大组成部分 计算机的本质 计算 ...
- python学习第一
#python学习day1#一.变量#变量命名规范:#驼峰命名法:AgeOfPlane#下划线命名(推荐):age_of_plane#变量格式同C/C++#注意:变量不以中文命名:变量不宜过长:变量因 ...
- 《用Python做HTTP接口测试》学习感悟
机缘巧合之下,报名参加了阿奎老师发布在"好班长"的课程<用Python做HTTP接口测试>,报名费:15rmb,不到一杯咖啡钱,目前为止的状态:坚定不移的跟下去,自学+ ...
随机推荐
- redis五种数据类型的使用场景
string 1.String 常用命令: 除了get.set.incr.decr mget等操作外,Redis还提供了下面一些操作: 获取字符串长度 往字符串append内容 设置和获取字符串的某一 ...
- Spring MVC 架构的java web工程如何添加登录过滤器
发布到外网的web工程必须添加登录过滤器来阻挡一些非法的请求,即只有登录的用户才能对web工程进行请求,否则无论请求什么资源都需要调整到登录页面进行登录操作.这时就需要用到过滤器,其实非常简单,只需要 ...
- 5WHY分析法:一个问题分析与解决的工具
5WHY分析法很多做项目的都知道,但是却很少有人能用到实处,或者是灵活运用,所以今天小编又来翻一遍这个“旧账”,让大家更了解5WHY分析法. 什么是5WHY分析法? 所谓5why分析法,又称“5问法” ...
- 第三十五节,目标检测之YOLO算法详解
Redmon, J., Divvala, S., Girshick, R., Farhadi, A.: You only look once: Unified, real-time object de ...
- 第二十四节,TensorFlow下slim库函数的使用以及使用VGG网络进行预训练、迁移学习(附代码)
在介绍这一节之前,需要你对slim模型库有一些基本了解,具体可以参考第二十二节,TensorFlow中的图片分类模型库slim的使用.数据集处理,这一节我们会详细介绍slim模型库下面的一些函数的使用 ...
- Docker下安装Influxdb-1.6.1和Grafana5.2.2
第一步.安装Influxdb 首先启动docker systemctl start docker 然后安装Influxdb(这里解释一下为啥用docker,因为官网下载的话需要FQ[fan-qiang ...
- 计算机基础:计算机网络-socket编程
来源:mooc大学华南理工大学计算机网络课程 chapter6 代码:https://github.com/NeilKeats/SocketDemo/commit/5f3a795250a9533910 ...
- Luogu P3521 [POI2011]ROT-Tree Rotations
题目链接 \(Click\) \(Here\) 线段树合并,没想到学起来意外的很简单,一般合并权值线段树. 建树方法和主席树一致,即动态开点.合并方法类似于\(FHQ\)的合并,就是把两棵树的信息整合 ...
- CodeForces755F 贪心 + 多重背包二进制优化
https://cn.vjudge.net/problem/615831/origin 题意 n个人; 计划是每个人都拿一个礼物来送给一个除了自己之外的人; 如果一个人没有送出礼物,那么它和它送礼 ...
- KVM安装启动虚拟机
KVM定制OpenStack云主机 如何定制化OpenStack云主机?从去年10月份刚开始接触OpenStack,到现在也有一年了.虽说目前只是停留在用它,对它的一些组件简单的了解,但谈到制作出一个 ...