apifox如何使用脚本
这一篇文章讲解的是在apifox中如何通过脚本获取cookies
第一步 先写脚本
我们使用selenium去获取cookies 要是有人不会selenium可以看看我前面的几篇文章
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
def Get_cookies():
# 设置Chrome不自动关闭
options = Options()
options.add_experimental_option('detach', True)
# 使用无头模式 浏览器不会显示出来:
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('window-size=1920x1080') # 窗口大小
options.add_argument('--start-maximized')
driver = webdriver.Chrome(options=options )
driver.get('XXX.COM') #这是你想要登录的网址
sleep(2)
driver.find_element(By.NAME,'username').send_keys('name') #这是通过find_element去定位username输入框
driver.find_element(By.NAME,'password').send_keys('password')#这是通过find_element去定位password输入框
driver.find_element(By.XPATH,'//*[@id="app"]/div/div[1]/div[2]/form/button[1]').click()#这是通过find_element去定位点击登录
sleep(2)
cookie = driver.get_cookies()[0]["value"] #这是获取cookie
print(cookie)
driver.close()
Get_cookies()
可以先run一下 看能不能获取到cookie
运行成功可以进行下一步操作了
以上是编写的获取cookies的脚本 现在我们可以回到apifox中去添加脚本,在设置里的外部程序中可以放置脚本
再把文件放进去
打开一个接口 点击前置操作
// await---用于等待一个一步方法执行完成
var data = await pm.executeAsync('./get_cookies.py')
console.log(data)
pm.environment.set("cookies", data); //设置临时变量
pm.environment.get("cookies") //获取临时变量
再运行一下 看一下是否成功
成功了 我们再进行下一步操作 添加网关
我这边是从父类继承 可以去根目录设置 可以根据去求去调整 如果不同的接口需要使用不同的cookies 可以去接口文档修改
再回到根目录
这个类型的key值是你接口响应标头的名字
value值就是刚刚设置的临时参数
这样设置 一个接口去调用这个前置脚本就能获取到cookies 会作用于整个根目录之下 这样我们可以再去运行一下接口 看看可以获取到数据么
成功了!