测试特定的Azure网站实例

时间:2014-11-27 16:25:53

标签: asp.net azure integration-testing load-balancing azure-web-sites

我将Azure网站配置为使用多个(2)实例:

Azure Configuration

我有一个应该在实例之间传递消息(即Cache Evict)的服务总线。我需要测试这种机制。

在传统(内部部署)系统中,我会将浏览器指向实例1(即http://myserver1.example.com),执行操作,然后将浏览器指向另一个实例(http://myserver2.example.com)进行测试。

但是,在Azure中,我看不到某种方法来命中特定的实例。可能吗?或者是否有另一种方法来运行此测试场景(对实例1采取行动,确保实例2的行为正确)?

1 个答案:

答案 0 :(得分:3)

不幸的是,没有正式的方法可以做到这一点。但是,您可以通过在请求中设置名为ARRAffinity的Cookie来实现此目的。

尝试从任何客户端(Chrome,Firefox,curl,httpie等)访问您的网站,并检查您要回复的响应标头。

例如在curl中你会做

curl -I <siteName>.azurewebsites.net

你会得到这个

HTTP/1.1 200 OK
Content-Length: 2
Content-Type: text/html
Last-Modified: Wed, 17 Sep 2014 16:57:26 GMT
Accept-Ranges: bytes
ETag: "2ba0757598d2cf1:0"
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=<very long hash>; Path=/;Domain=<siteName>.azurewebsites.net
Date: Fri, 28 Nov 2014 03:13:07 GMT

你感兴趣的是ARRAFinity如果你发送了几个请求,你会发现哈希会在代表你的2个实例的2个值之间不断变化。

在您的请求的Cookie标题中设置将保证它转到其中一个实例而不是另一个实例。

curl --cookie ARRAfinity=<one of the hashes you got> <siteName>.azurewebsites.net