You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Selenium IDE进行API测试?

用Selenium IDE进行API测试(发送请求并获取响应)

Selenium IDE本身是为UI自动化设计的,但你可以通过执行浏览器端JavaScript来实现API请求的发送与响应获取,核心是利用execute async script命令处理异步请求,具体操作步骤如下:

1. 发送GET请求

  • 添加execute async script命令,在脚本输入框中填入以下代码:
    // 获取Selenium提供的done回调,用于返回异步请求结果
    const done = arguments[arguments.length - 1];
    // 发送GET请求到目标API
    fetch('https://your-api-domain.com/api/resource')
      .then(response => {
        // 解析响应为JSON格式(若为纯文本可换为response.text())
        return response.json().then(data => ({status: response.status, body: data}));
      })
      .then(result => done(result))
      .catch(error => done({error: error.message}));
    
  • 在Target框中输入变量名(比如${getApiResponse}),用来存储返回的响应结果。

2. 发送POST请求

同样使用execute async script命令,调整脚本内容以支持带请求体的POST请求:

const done = arguments[arguments.length - 1];
// 构造请求体数据
const requestBody = {username: 'test_user', password: 'test_pass'};
fetch('https://your-api-domain.com/api/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    // 若需要身份验证,添加对应请求头:'Authorization': 'Bearer your_token_here'
  },
  body: JSON.stringify(requestBody)
})
.then(response => {
  return response.json().then(data => ({status: response.status, body: data}));
})
.then(result => done(result))
.catch(error => done({error: error.message}));
  • 把响应结果存入变量(比如${postApiResponse}),方便后续验证。

3. 验证响应内容

拿到响应变量后,用Selenium IDE的断言命令验证结果:

  • 检查响应状态码:使用assert equals命令,Target填${getApiResponse.status},Value填200(或预期的状态码)。
  • 检查响应体字段:用assert equals命令,Target填${postApiResponse.body.user_id},Value填预期的用户ID值。

关键注意事项

  • 跨域问题:如果API域名与当前打开的页面域名不同,浏览器会触发CORS限制。解决方式是启动浏览器时禁用CORS检查(比如Chrome添加参数--disable-web-security --user-data-dir=/tmp/test-profile),或者确保API服务配置了允许当前域名的跨域访问规则。
  • 异步处理:必须使用execute async script而非execute script,因为API请求是异步操作,前者会等待done回调执行后再继续后续命令。
  • 响应格式适配:若API返回XML或纯文本,将response.json()替换为response.text()或response.xml()即可。

内容的提问来源于stack exchange,提问作者Gaurav Prakash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:48:23