问题描述
我有一些因为某些原因而不稳定的API测试。
我想检查媒体文件链接是否正确并且可以正常工作。媒体链接通过CDN,音频文件本身存储在Google Cloud Storage中。我正在检查该URL的响应代码为200。
fun getStatusCodeForRandomUrl(): Pair<Int,String> {
val randomUrl = getRandomMediaUrlFromServer()
val statusCode = `when`()
.head(randomUrl)
.statusCode
val result = Pair(statusCode,randomUrl)
assertEquals(200,result.first,"Non 200 code for: ${result.second} ")
}
问题在于,我获得代码的链接中几乎有一半在“确保有保证”中是403(对于其中一个URL甚至是404)。但是我在所有URL的邮递员中都得到正确的200。此外,它还会在浏览器中打开包含这些链接的正确媒体。所有媒体链接都是公开的,不需要经过身份验证。
“断开”链接始终相同。而且它们在浏览器或邮递员中都可以正常打开。
我已经变通了:我试图多次链接到200,然后链接403,但这看起来不像这样做。
以下是无法通过我的测试用例的URL的示例:
https://cdn.vyng.me/audio/ringtones/gagan/Channa%20ve%20Channa.mp3?GoogleAccessId=content-manager%40vyng-1148.iam.gserviceaccount.com&Expires=1913108526&Signature=RpAP%2FqqzTtEJ9JD7omrG1QUXPYDK3CbJwMVuX%2FmmuTqPnANM77fJOPFzy5kKIguB%2BAiRemfa2Z9N0K5UhH65UjS1ov7hRNLzu9uywb91unVCPKLP8tWo5ZrabmwVHuJsjOrIPTC57bLCC00i5fcnrYirG63BuzbJDNyvzCANQUvUY0EbNUbjX8p6hXZsKkllda7RKSl3JM4WNnlPtIaI0BygGyANsjomd9FsoPgKWZseR0hl45Uw9bCNgOyxW15payndp1fRVAOax0L4AWpX7gwDhg%2F%2F5ChhYXkCHZG5g0tAKME7ihH%2FiFSv98fPA9gidIuvdIQlT9eaJNxDiqk4Cw%3D%3D
==> expected: <200> but was: <404>
这些测试是片状的。也许有人遇到同样的问题并找到了解决方案?为什么我在Postman中的所有URL上都能获得200个代码的确认,而在Rest Restured中却获得了其中的403/404的一半?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)