none
如何对需要输入user/passwd进行权限认证的web service进行webtest? RRS feed

  • 问题

  • 如何对需要输入user/passwd进行权限认证的web service进行webtest?在vs中录制好后再执行总是失败,user/passwd的权限认证似乎录制不了。有好的办法吗?
    2010年9月1日 2:37

答案

  • 尝试这个代码:

      1        /**//// <summary>
      2        /// 服务器网络凭证
      3        /// </summary>
      4        /// <returns></returns>
      5        public static NetworkCredential MyCred()
      6        {
      7            string loginUser = Properties.Settings.Default.UserName;//用户名
      8            string loginPSW = Properties.Settings.Default.UserPSW;//密码
      9            string loginHost = Properties.Settings.Default.HostName;//主机名,可以是IP地址,也可以服务器名称
      10            NetworkCredential myCred = new NetworkCredential(loginUser,loginPSW, loginHost);
      11            //NetworkCredential myCred = new NetworkCredential("username", "123456", "yourip");//"username", "123456", "yourservername"
      12            return myCred;
      13        }
      14        /**//// <summary>
      15        /// 验证是否成功连接到服务器,若连接成功,则返回TRUE
      16        /// </summary>
      17        /// <param name="url">服务器WebService URL</param>
      18        /// <returns></returns>
      19        public static bool Credential(string url)
      20        {
      21           //定义局部变量
      22           string url = G_Url;//2009-02-25 陈辉聪  服务器验证只验证到机器
      23
      24            try
      25            {
      26                if (myWebResponse == null)
      27                {
      28                    WebRequest myWebRequest = WebRequest.Create(url);//根据URL创建一个连接请求
      29                    myWebRequest.Credentials = MyCred();//获取验证的凭证,这是最重要的一句
      30                    myWebRequest.Timeout = 20000;//单位为毫秒
      31
      32                    myWebResponse = myWebRequest.GetResponse();//返回连接成功时的信息
      33                }
      34            }
      35            catch (WebException wex)//无法连接到服务器,可能是因为服务器错误或用户名与密码错误
      36            {
      37                if (myWebResponse != null)//毁销
      38                {
      39                    myWebResponse.Close();
      40                    myWebResponse = null;
      41                }
      42
      43                return false;
      44            }
      45            catch (Exception ex)
      46            {
      47                if (myWebResponse != null)
      48                {
      49                    myWebResponse.Close();
      50                    myWebResponse = null;
      51                }
      52
      53                return false;
      54
      55            }
      56            finally
      57            {
      58            }
      59
      60            return true;
      61        }
      62
      63       private static WS_Webasic.WS_Webasic webasic =null;//实现华WS_Webasic.WS_Webasic
      64
      65        /**//// <summary>
      66        /// WS_Webasic初始化
      67        /// </summary>
      68        public static WS_Webasic.WS_Webasic WS_Webasic
      69        {
      70            get
      71            {
      72                if (webasic == null)//若webasic 为空,则重新实例化,这样可以减少验证的时间,提高效率
      73                {
      74                    //webasic = new ZEDI.WS_Webasic.WS_Webasic();
      75                    //wsBool = Credential(webasic.Url);//URL改为服务器地址 2009-02-25 陈辉聪 chhuic@163.com
      76                    wsBool = Credential(G_Url);
      77                    if (wsBool == true)  //服务器连接验证通过
      78                    {
      79                        webasic = new WS_Webasic.WS_Webasic();//实例化
      80                        webasic.Credentials = MyCred();//得到服务器连接凭证,这样该WebService可以放心的连接了
      81                    }
      82                }
      83                return webasic;
      84            }
      85        }

     

    来源:http://www.51testing.com/html/34/n-192834.html,断点调试试试看。

    2010年9月2日 1:56
    版主