如何在Katalon中以编程方式指定代理?
我来给你梳理两种可行的方案,帮你搞定用不同代理重复跑测试的需求:
方案一:在Katalon中通过Groovy代码动态设置代理
其实Katalon的核心API里是支持通过代码修改代理配置的,只是官方文档没特意突出这点。你可以用RunConfiguration类来动态调整代理参数,每次测试前切换到目标代理即可。
举个具体的代码示例,你可以把这段逻辑放在测试用例的Before Test Case钩子或者测试脚本开头:
import com.kms.katalon.core.configuration.RunConfiguration // 定义当前要使用的代理信息 def proxyHost = "192.168.1.100" def proxyPort = 8080 def proxyUser = "your_username" // 如果代理不需要认证可以留空 def proxyPass = "your_password" // 设置HTTP代理 RunConfiguration.setProxyServerAddress(proxyHost) RunConfiguration.setProxyServerPort(proxyPort) RunConfiguration.setProxyType("MANUAL_CONFIG") // 如果代理需要认证,开启认证并设置账号密码 if (proxyUser && proxyPass) { RunConfiguration.setProxyAuthenticationEnabled(true) RunConfiguration.setProxyUsername(proxyUser) RunConfiguration.setProxyPassword(proxyPass) } else { RunConfiguration.setProxyAuthenticationEnabled(false) } // 可选:设置HTTPS代理(如果和HTTP代理一致,这步可以省略) RunConfiguration.setProxyServerAddressForHTTPS(proxyHost) RunConfiguration.setProxyServerPortForHTTPS(proxyPort)
执行这段代码后,后续的测试请求就会通过指定的代理发送了。如果是遍历代理列表,你可以把代理信息存在一个数组里,循环调用这段逻辑+执行测试用例即可。
方案二:通过命令行启动Katalon时指定代理
Katalon确实支持通过命令行参数指定代理,只是这部分参数在官方文档里比较隐蔽。你可以在启动Katalon执行测试时,加上代理相关的参数,这样就能针对每个代理单独启动一个Katalon实例。
常用的代理命令行参数包括:
-proxy.server.type: 代理类型,可选MANUAL_CONFIG或AUTODETECT-proxy.server.address: 代理服务器地址-proxy.server.port: 代理端口-proxy.auth.enabled: 是否开启代理认证(true/false)-proxy.auth.username: 代理认证用户名-proxy.auth.password: 代理认证密码
举个Windows命令行的例子:
katalon.exe -noSplash -runMode=console -projectPath="C:\Your\Project\Path\TestProject.prj" -testSuitePath="Test Suites/YourTestSuite" -proxy.server.type=MANUAL_CONFIG -proxy.server.address=192.168.1.100 -proxy.server.port=8080 -proxy.auth.enabled=true -proxy.auth.username=testuser -proxy.auth.password=testpass
Linux/macOS的话类似:
./katalon -noSplash -runMode=console -projectPath="/your/project/path/TestProject.prj" -testSuitePath="Test Suites/YourTestSuite" -proxy.server.type=MANUAL_CONFIG -proxy.server.address=192.168.1.100 -proxy.server.port=8080 -proxy.auth.enabled=true -proxy.auth.username=testuser -proxy.auth.password=testpass
你可以写个简单的脚本(比如Batch脚本、Shell脚本或者Python脚本),遍历你的代理列表,逐个生成并执行上面的命令,就能实现批量用不同代理跑测试的需求了。
额外注意事项
- 如果用代码动态设置代理,测试结束后建议恢复默认代理配置,避免影响后续测试
- 命令行方式每个代理会启动一个独立的Katalon进程,注意控制并发数,避免资源占用过高
- 有些代理可能需要设置例外地址(比如本地服务),可以用
RunConfiguration.setProxyExceptions()(代码方式)或者-proxy.server.exceptions(命令行参数)来配置
内容的提问来源于stack exchange,提问作者Vobuhin
相关产品推荐
相关产品推荐

