首页 > 代码库 > 基于C#的接口自动化测试(一)
基于C#的接口自动化测试(一)
其实就是找个地方然后给关键的代码做个笔记什么的……
字符串访问API接口,访问方法为POST:
string url = URL; string RequestParam = Param; string headername = HeaderName; string header = Header; string html = ""; try { WebRequest wbreq = WebRequest.Create(url); } catch (WebException WebEx) { Console.WriteLine("无法访问的URI:" + "\r\n" + WebEx.ToString()); } byte[] byteArray = Encoding.UTF8.GetBytes(RequestParam); { //POST访问接口 HttpWebRequest RequestInterfaceRequsetByString = (HttpWebRequest)HttpWebRequest.Create(new Uri(URL)); RequestInterfaceRequsetByString.KeepAlive = false; RequestInterfaceRequsetByString.ProtocolVersion = HttpVersion.Version11; RequestInterfaceRequsetByString.Method = "post"; RequestInterfaceRequsetByString.ContentType = "application/x-www-form-urlencoded"; RequestInterfaceRequsetByString.Timeout = -1;//超时时间设置为无限大 RequestInterfaceRequsetByString.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0"; Encoding encoding = Encoding.GetEncoding("utf-8"); RequestInterfaceRequsetByString.Headers.Add(headername, Header); try { Stream requeststream = RequestInterfaceRequsetByString.GetRequestStream(); requeststream.Write(byteArray, 0, byteArray.Length); requeststream.Close(); try { HttpWebResponse response = (HttpWebResponse)RequestInterfaceRequsetByString.GetResponse(); Stream responsestream = response.GetResponseStream(); StreamReader sr = new StreamReader(responsestream); html = sr.ReadToEnd(); //从头读到尾,放到字符串html responsestream.Close(); response.Close(); } catch (Exception ex) { html = ex.Message; } } catch (Exception ex) { html = ex.Message; } } return html; }
json转字典类型:
public static Dictionary<string, object> ConvertDictionary(string str) { JavaScriptSerializer jss = new JavaScriptSerializer(); //string jsstr = ConvertJsonString(str); try { return jss.Deserialize<Dictionary<string, object>>(str); } catch (Exception ex) { throw new Exception(ex.Message); } }
字典类型访问API接口:与字符串类型访问接口基本类似,但是需要加入字典相关的东西,访问方法为POST
Dictionary<string, object> requestdic = ConvertToDictionary.ConvertDictionary(RequestParam); StringBuilder buffer = new StringBuilder(); int i = 0; foreach (string key in requestdic.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}", key, requestdic[key]); } else { buffer.AppendFormat("{0}={1}", key, requestdic[key]); } i++; } byte[] byteArray = Encoding.UTF8.GetBytes(buffer.ToString());
格式化json字符串:
public static string ConvertJsonString(string str) { //格式化json字符串 JsonSerializer serializer = new JsonSerializer(); TextReader tr = new StringReader(str); JsonTextReader jtr = new JsonTextReader(tr); object obj = serializer.Deserialize(jtr); if (obj != null) { StringWriter textWriter = new StringWriter(); JsonTextWriter jsonWriter = new JsonTextWriter(textWriter) { Formatting = Formatting.Indented, Indentation = 4, IndentChar = ‘ ‘ }; serializer.Serialize(jsonWriter, obj); return textWriter.ToString(); } else { return str; } } }
基于C#的接口自动化测试(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。