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中添加参数

1348104-20180311104013493-1534345204.png

在headers中添加cookie

1348104-20180311103838815-39610235.png

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

后面会讲到。

二.Jmeter接口测试脚本制作

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

1.Jmeter 中响应乱码:

修改bin/jmeter.properties

搜sampleresult.default.encoding

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

1348104-20180311104555258-814640763.png

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

1348104-20180311104943088-1403581441.png

1348104-20180311105007002-106310584.png

(2)post类型的请求

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

例如:登录

1348104-20180311110006609-1251867301.png

1348104-20180311110028327-204081952.png

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

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

1348104-20180311110205035-1375572651.png

1348104-20180311110259489-1116510463.png

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

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

1348104-20180311110605228-876668279.png

1348104-20180311110554565-1766619598.png

1348104-20180311110743744-635733582.png

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

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

1348104-20180311110919692-903155706.png

1348104-20180311110931622-459750046.png

1348104-20180311110959737-1967947743.png

(6)上传文件的请求:

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

1348104-20180311111051970-1563033929.png

1348104-20180311111115763-1939177332.png

4.Jmeter的其他常用技巧:

(1)参数化

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

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

用户自定义变量参数化:

1348104-20180319214459525-199368221.png

csv文件方式参数化:

1348104-20180311114216619-1779942965.png

1348104-20180311114226740-351074980.png

1348104-20180311114256386-1975501247.png

(2)关联

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

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

1348104-20180312205047375-1648110494.png

1348104-20180312205142657-2046221288.png

1348104-20180312205323980-1742300028.png

(3)断言

判断请求是否成功

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

1348104-20180311114442196-858431104.png

1348104-20180311114611765-1695591821.png

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

1348104-20180311114803586-1539522905.png

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

1348104-20180311114828407-532501458.png

1348104-20180311114837030-1387842191.png

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

时间戳:

格式自己选择 如:yyyyMMddHHmmss

1348104-20180311114916933-574700609.png

(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

1348104-20180311115108037-1182197165.png

1348104-20180311115203917-1285680907.png

如果要插入中文:

1348104-20180311115220830-2126826150.png

(6)jmeter下载文件

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

1348104-20180311122306784-59332616.png

1348104-20180311122316798-643826389.png

1348104-20180311122350766-1965844749.png

桌面上有下载到的图片:

1348104-20180311122415174-777105508.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值