使用请求接口
这个功能是可以支持多个线程的, 正因为它可以这样操作, 所以就能够利用它来对已经写好的那些接口进行并发性的测试工作。
请求接口代码如下:
#coding=utf-8import requests
import json
import threading
import time
import uuid
class postrequests():
def __init__(self):
self.url = #请求链接
self.data = {'phone': '176*****286','code':'12***6'} #传递参数
self.headers = {'content-type': 'application/json'} #请求头
self.data = json.dumps(self.data)
def post(self):
try:
r = requests.post(self.url, self.data, headers=self.headers)
print(r.text)
except Exception as e:
print(e)
def kquan_bf():
login = postrequests()
return login.post()
try:
i = 0
# 开启线程数目
tasks_number = 1
print('测试启动')
time1 = time.perf_counter()
while i < tasks_number:
t = threading.Thread(target=kquan_bf)
t.start()
i +=1
time2 = time.perf_counter()
times = time2 - time1
print(times/tasks_number) #每次请求用时
except Exception as e:
print(e) #请求结果
结果显示:
测试启动
0.
代码的数值是零,意思是操作这个动作已经顺利完成了, 具体的内容还包含在数据里面。
如果在接口这里做了并发处理的话, 当同时去开启大多数的线程的时候, 这个时候, 就会去触发那个代码里面所存在的并发处理逻辑, 就好像会出来这样的提示意思一样, 就是服务器很繁忙, 请你过一会儿再试着看看!
如何调用接口
我们在使用中调用接口的时候, 是可以去运用多种不一样的方式的, 下面就把其中几种常用的方法来给大家罗列出来。
通过使用标准库里面的模块, 或者使用第三方库, 来发送那种被称为HTTP的请求。
首先得把那个对应的库给导入进去, 接着再去用那个相应的函数去发送请求, 最后才能拿到返回回来的结果。
比如呢, 在下面这段程序代码里面, 大家就可以去使用一个调用接口的样例来作为参照了。
import requests# 发送GET请求
response = requests.get('http://api.example.com/users')
data = response.json() # 将返回的JSON数据转换为Python对象
# 发送POST请求
payload = {'username': 'test', 'password': '123456'}
response = requests.post('http://api.example.com/login', data=payload)
data = response.json() # 将返回的JSON数据转换为Python对象
在使用第三方库的时候。
这个库提供了级别更高的接口调用功能, 它支持 HTTP 并且支持 HTTPS, 同时还支持缓存功能、重定向功能以及认证功能。
import httplib2http = httplib2.Http()
response, content = http.request('http://api.example.com/users', 'GET')
data = json.loads(content) # 将返回的JSON数据转换为Python对象
payload = {'username': 'test', 'password': '123456'}
response, content = http.request('http://api.example.com/login', 'POST', body=urlencode(payload))
data = json.loads(content) # 将返回的JSON数据转换为Python对象
在使用标准库里面的模块, 来对命令行工具进行调用。
如果需要调用的接口是通过命令行工具提供的, 那么可以使用模块来调用该命令行工具, 并且获取其输出。
import subprocessoutput = subprocess.check_output(['curl',
data = json.loads(output) # 将返回的JSON数据转换为Python对象
以上就是几种被经常使用的去调用那个接口的具体方法, 大家可以根据自己的实际状况来挑选一个能够让自己用的方法, 然后进行这个接口的调用过程。
总结
这些内容仅仅是属于我个人方面的一点点实际经验而已, 目的只是想给各位读者朋友提供一个可以用来参考的角度和方法, 同时也诚恳地希望各位能够给予脚本之家这个平台以更多的支持和鼓励。