其实就是找个地方然后给关键的代码做个笔记什么的……

字符串访问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 = ;
foreach (string key in requestdic.Keys)
{
if (i > )
{
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 = ,
IndentChar = ' '
};
serializer.Serialize(jsonWriter, obj);
return textWriter.ToString();
} else
{
return str;
}
} }

Json数据处理:

JObject jobj = JObject.Parse(response);
//想取值就在jobj后面加节点就行
var OrderId = jobj["data"]["Orders"][i]["OrderId"];
//如想取多重嵌套的Json节点个数,就用JArray
JArray orderobj = (JArray)jobj["data"]["Orders"];
orderobj.count;

基于C#的接口自动化测试(一)的更多相关文章

  1. 基于HttpRunner的接口自动化测试平台HttpRunnerManager(二)

    https://github.com/HttpRunner/HttpRunnerManager HttpRunnerManager Design Philosophy 基于HttpRunner的接口自 ...

  2. 基于Jmeter的接口自动化测试实践

    在去年实施了一年的三端(PC.无线M站.无线APP[Android.IOS])后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成.今天做个简单的分享. ...

  3. 基于python的接口自动化测试+ddt数据驱动

    在测试接口时,一个接口会先写好测试用例,这个用例主要针对功能,传入参时考虑到各种场景,正常的,异常的,如:参数缺省,参数传一个六位数字写用例时考虑边界情况等. 一个接口设计用例时有可能会十几条到几十条 ...

  4. 基于Python的接口自动化测试框架

    项目背景 公司内部的软件采用B/S架构,目的是进行实验室的数据存储.分析.管理. 大部分是数据的增删改查,但是由于还在开发阶段,所以UI的变化非常快,难以针对UI进行自动化测试,那样会消耗大量的精力与 ...

  5. 基于excel的接口自动化测试框架:支持参数化、关联等

    1. 框架结构说明 2. 框架代码实现 action 包  case_action.py business_process 包 main_process.py util 包 global_var.py ...

  6. 基于excel实现接口自动化测试

    本文档介绍如何使用excel管理接口测试用例并一键执行的实现方式,其中包括 python 读写excel, request库的基本操作,接口用例的设计 接口用例设计 用例字段描述 被依赖表达式: 示例 ...

  7. 基于C#的接口自动化测试(二)

    Json多重数据处理方法II:jobj直接向后调用即可 ]["GoodsName"]; 用:分隔的字符串转字典: public static Dictionary<strin ...

  8. python实现http接口自动化测试(完善版)

    今天给大家分享一个简单的Python脚本,使用python进行http接口的自动化测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值 ...

  9. seldom 2.0 让接口自动化测试更简单

    前言 HTTP接口测试很简单,不管工具.框架.还是平台,只要很的好的几个点就是好工具. 测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化. 接口依赖问题:B接口依赖A的返回值, ...

随机推荐

  1. linux的大小端、网络字节序问题 .

    1.80X86使用小端法,网络字节序使用大端法. 2.二进制的网络编程中,传送数据,最好以unsigned char, unsigned short, unsigned int来处理, unsigne ...

  2. Qtp自动测试工具(案例学习)

    ♣Qtp是什么? ♣测试用例网站    ♦注册与登录    ♦测试脚本       ◊录制/执行测试脚本       ◊分析录制的测试脚本       ◊执行.查看测试脚本    ♦建立检查点     ...

  3. 使用 PHPStorm + Xdebug 实现断点调试(二)

    一.配置 Xdebug 配置 Xdebug 相关参数,在 php.ini 文件中新增如下配置,如果没安装的,请参考<PHP 安装 Xdebug扩展>: [xdebug] xdebug.re ...

  4. PHP 安装 Xdebug 扩展(一)

    一.前言 1. Xdebug 简介 Xdebug 是一个开放源代码的 PHP 程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况.当前最新版本为 Xdebug 2.5.0 ...

  5. web开发中,post与get的区别

    区别: 1.Get是从服务器上获取数据,Post是向服务器传送数据. 2.Get是把参数数据队列加到提交表单的Action属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.Post是 ...

  6. HashSet实现原理

    /* HashSet的实现原理: 往HashSet添加元素的时候,HashSet会先调用元素的hashCode方法得到元素的哈希值 , 然后通过元素 的哈希值经过移位等运算,就可以算出该元素在哈希表中 ...

  7. asp.net 母版-页脚制作

    1.母版创建流程略过. 2.创建母版页css:Site.css body { } .linkButton{ text-decoration:none; color:whitesmoke; } 3.母版 ...

  8. 【初识Python】

    一.Python的简介 1.什么是python? Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用 ...

  9. oracle job执行失败

    创建job任务:declare test_job number;begin dbms_job.submit(test_job, 'prc_job_test;', sysdate, 'sysdate+1 ...

  10. xargs命令详解

    xargs命令是把接收到的数据重新格式化,再将其作为参数提供给其他命令,下面介绍xargs命令的各种使用技巧 一.将多行输入转换成单行输入: [root@host1 test]# echo -e &q ...