yellow网站推广联盟,网站是别人做的 ftp账号吗,郑州小学班级网站建设,推广的公司之前学习了使用jmeterant做接口测试#xff0c;并实现了接口的批量维护管理(大概500多条用例)#xff0c;对“接口”以及“接口测试”有了一个基础了解#xff0c;最近找了一些用python做接口测试的资料#xff0c;一方面为了学习下如何使用python进行接口测试(如何做出一个… 之前学习了使用jmeterant做接口测试并实现了接口的批量维护管理(大概500多条用例)对“接口”以及“接口测试”有了一个基础了解最近找了一些用python做接口测试的资料一方面为了学习下如何使用python进行接口测试(如何做出一个简单基础的接口测试框架)另一方面也为了锻炼下如何用python写代码(接触python也有一段时间了但是每次自己编程总有种提笔忘字的感觉真是欠练) 首先用python做接口测试主要用到就是requests库和json库。
1.先看一个简单的demo
1 # -*- coding: UTF-8 -*-2 import requests3 get_url http://localhost:7001/XXX4 data {userCode:csqy123456,userPWD:123456}5 r requests.get(urlget_url, paramsdata, timeout5) #产生一个名为r的Response对象,可以从这个对象中获取我们想要的信息; #get请求传参数时使用params关键字 #timeout参数用来设定停止等待响应的时间6 print(r.url) #返回请求url7 print(r.json()) #以JSON格式解析响应内容8 print(r.status_code) #返回状态码9 print(r.raise_for_status()) #如果发送了一个错误请求如404、500等可以通过raise_for_status()来抛出异常
10 print(r.encoding) #查看requests使用了什么编码同时可以用r.encoding属性来改变它
11 print(r.raw) #获取来自服务器的原始套接字响应
12 print(r.headers) #服务器返回给我们的响应头信息也可以在传参时通过headersXXX来定制请求头
13 print(r.request) #获取原来创建的Request对象
14 print(r.request.headers) #发送到服务器的请求头 1 # -*- coding: UTF-8 -*-
2 import requests
3 post_url http://localhost:7001/XXX
4 payload2 {approveSeq:6610,userCode:qyzh123456_88,projName:测试项目}
5 r requests.post(post_url, datapayload2, timeout1) #post请求传参数时使用data关键字
6 print(r.json())
7 print(r.status_code) 2.然后通过函数调用来发送get/post请求 # -*- coding: UTF-8 -*-
import requestsdef send_get(url, data): 定义send_get函数用来接收参数发送get请求 r requests.get(urlurl, paramsdata)result r.json()return resultdef send_post(url, data): 定义send_post函数用来接收参数发送post请求 r requests.get(urlurl, datadata)result r.json()return resultdef main(url, method, data): 定义一个主函数根据method是get或post来调用send_post()或send_get() if method POST:r send_post(url, data) # 如果是POST请求则调用send_post()else:r send_get(url, data) # 如果是GET请求则调用send_get()return r # 将结果返回出去url http://localhost:7001/XXX
data {controlSeq: 2018118325
}
demo main(url, GET, data)
print(demo) 3.定义一个类对post请求和get请求进行封装 run_method.py# -*- coding: UTF-8 -*-import requests
import jsonclass RunMain:含有构造器def __init__(self, url, method, dataNone):self.t self.run_main(url, method, data)def send_post(self, url, data):r requests.post(urlurl, datadata)result r.json()return json.dumps(result, indent2, sort_keysFalse, ensure_asciiFalse)def send_get(self, url, data):r requests.get(urlurl, paramsdata)result r.json()return json.dumps(result, indent2, sort_keysFalse, ensure_asciiFalse)# 利用json.dumps将响应数据进行json格式的编码解析# indent2将输出结果缩进2个字符显示# sort_keysFalse输出结果是否按照关键字排序# json.dumps 序列化时对中文默认使用的ascii编码ensure_asciiFalse才会输出中文# return resultdef run_main(self, url, method, dataNone):if method GET:r self.send_get(url, data)else:r self.send_post(url, data)return rif __name__ __main__:url http://localhost:7001/XXXdata {controlSeq: 2018118325}test RunMain(url, GET, data) # 因为有构造器 __init__实例化时要带参数print(test.t) run_method.py
# -*- coding: UTF-8 -*-import requests
import json
class RunMain:无构造器def send_get(self, url, data):res requests.get(urlurl, paramsdata).json()return resdef send_post(self, url, data):res requests.post(urlurl, datadata).json()return resdef run_main(self, url, method, dataNone):res Noneif method GET:res self.send_get(url, data)else:res self.send_post(url, data)return resif __name__ __main__:url http://192.168.0.53:7001/CommonService/api/control/controlProgress/query.vdata {controlSeq: 2018118325}run RunMain() # 先实例化实例化时不需要带参数print(run.run_main(url, GET, data)) ps.建议在封装运行方法类时不要加构造器这样就不需要在实例化时传参在后面的主函数中从excel中取出参数后再传给类中的方法即可
下面是json.dumps使用前后的对比图 第一目的内容到此结束一方面简单介绍下requests的用法另一方面将post和get请求进行基本封装通过实例化对象进行调用 2023最新Jmeter接口测试从入门到精通全套项目实战教程