jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本

一.接口

1.内部接口

程序内部模块之间的交互时使用的接口

2.外部接口

用户使用程序时调用的接口

我们所做的接口自动化测试,是外部接口测试。接口实际上就是对数据库的各种操作。接口测试可以发现一些页面上操作发现不了的bug。越早发现bug,解决bug的成本是越低的。

一个网站分为:前端和后端,前端也就是客户端,后端及服务端、server端。

前端 后端

| |

客户端 服务端

前端和后端就是通过接口交互的。那么接口返回的数据是json格式的,json是一个通用的数据类型,是key-value格式的,注意在使用json传参时,一定要注意格式。

例如,一个json数据类型的举例:

{"error_code": 0,"stu_info": [

{"id": 1,"name": "nana","sex": "女","age": 28,"addr": "河北省保定市","grade": "天蝎座","phone": "18612532911","gold": 100},

{"id": 2,"name": "lily","sex": "女","age": 28,"addr": "江苏省苏州市","grade": "天蝎座","phone": "18612538946","gold": 100},

]

}

3.接口测试

测试接口的话,必须得有接口文档:

1、url2、请求方式 post、get等3、入参(请求参数)4、返回参数5、请求、返回示例6、 状态码说明

接口的协议类型

1.http接口:通过http协议,有get post等方法,返回常为json串。

get请求他没有请求体,只有请求头

get请求的参数只能写在url后面或者cookie里面,get请求直接用浏览器就能发送了

如:http://xxxxxxxx/api/user/stu_info?stu_name=lily&id=1

post有请求头和请求体

请参数放在请求体里面,post请求就需要借助postman jmeter等工具了

如在postman中,post类型的请求的参数和cookie:

在body中添加参数

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第1张图片

在headers中添加cookie

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第2张图片

2. webservice接口:soap协议通过http传输,请求报文和返回报文都是xml格式,需要通过工具进行调用和测试。

后面会讲到。

二.Jmeter接口测试脚本制作

先修改两个地方,保证我们的请求体和响应中的中文能正常显示。

1.Jmeter 中响应乱码:

修改bin/jmeter.properties

搜sampleresult.default.encoding

sampleresult.default.encoding=utf-8 保存后重启jmeter生效

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第3张图片

2.Jmeter中请求体乱码

(当前使用jmeter版本为3.0,在3.3版本中没有看到请求体乱码)

修改bin/jmeter.properties

搜 jsyntaxtextarea.font.family

jsyntaxtextarea.font.family=宋体 保存重启jmeter生效

3.测试脚本的制作

(1)get类型的请求

接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=8

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第4张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第5张图片

(2)post类型的请求

接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=12

例如:登录

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第6张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第7张图片

(3)post类型需要通过json传参数:

接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=10

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第8张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第9张图片

(4)需要添加信息头的请求

接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=14

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第10张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第11张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第12张图片

(5)需要cookie信息的请求:

接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=11

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第13张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第14张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第15张图片

(6)上传文件的请求:

接口文档:http://doc.nnzhp.cn/index.php?s=/6&page_id=11

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第16张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第17张图片

4.Jmeter的其他常用技巧:

(1)参数化

因为数据库可能会校验数据的唯一性,所以我们需要使用参数化。

除了使用csv定义参数化文件外,可以用用户自定义变量来参数化,或者用函数助手来参数化

用户自定义变量参数化:

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第18张图片

csv文件方式参数化:

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第19张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第20张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第21张图片

(2)关联

后面的请求需要用到前面请求的返回值,所以我们获取到这个返回值后,把它作为参数,以供后面的请求去使用这个参数值。

如,添加金币请求需要登录请求的cookie,那么我们在登陆请求下加获取json中指定字段值来作为cookie,然后再添加金币请求后添加cookie管理器来使用这个cookie。

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第22张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第23张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第24张图片

(3)断言

判断请求是否成功

如在登录请求下添加断言:

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第25张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第26张图片

断言判断成功时在查看结果树看不到,只有在失败时才会出现在查看结果树中

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第27张图片

(4)生成随机数或时间戳

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第28张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第29张图片

用到的地方把变量粘过来就行了

时间戳:

格式自己选择 如:yyyyMMddHHmmss

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第30张图片

(5)jmeter操作数据库

Jmeter 连接数据库需要添加对应的jar,如mysql

mysql-connector-java-5.1.7-bin.jar

在测试计划导入jar或者把jar放入jmeter的lib目录下,

填写数据库信息,只填写最下面部分即可

jdbc:mysql://211.149.218.16:3306/jxz?allowMultiQueries=true&characterEncoding=UTF-8

com.mysql.jdbc.Driver

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第31张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第32张图片

如果要插入中文:

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第33张图片

(6)jmeter下载文件

参考:http://www.nnzhp.cn/archives/547

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第34张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第35张图片

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第36张图片

桌面上有下载到的图片:

jemeter python接口自动化测试平台_PYTHON自动化Day1-Jmeter制作接口测试脚本_第37张图片

你可能感兴趣的:(jemeter,python接口自动化测试平台)