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

字符串访问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. bzoj4819 [Sdoi2017]新生舞会

    Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴.有n个男生和n个女生参加舞会买一个男生和一个女生一起跳舞,互为舞伴.Cathy收集了这些同学之间的 ...

  2. Composer 常用命令总结(三)

    init(初始化) 该命令用于创建 composer.json 文件,并进行基础信息配置: $ composer init 可以配置Package name.Description.Author.Mi ...

  3. 【算法系列学习】DP和滚动数组 [kuangbin带你飞]专题十二 基础DP1 A - Max Sum Plus Plus

    A - Max Sum Plus Plus https://vjudge.net/contest/68966#problem/A http://www.cnblogs.com/kuangbin/arc ...

  4. TP5学习基础一:增删改查小demo

    ①TP5--增删改查简单的demo 我先吐槽一下:因为工作需要研究tp5,去官网看了一下哎呦,资源挺多挺全啊!然后下载唯一免费的官方教程,我曹pdf打开533页.讲的很细但是开发能等看完才做吗?看到精 ...

  5. 自动化运维:使用psutil和paramiko读取远程主机信息

    1.前言  今天大致看了下自动化运维的东西,里面介绍到了psutil模块,其封装了linux 下的大部分shell命令,用起来比较方便.但是基本都是介绍在本地如何使用,而实际情况大家很少这样使用,一般 ...

  6. python中从文件中读取数据2

    #average7.py 文件中有多行,且每行有多个数字用逗号隔开 def main(): fileName = input("What file are numbers in?" ...

  7. 使用java API操作hdfs--读取hdfs文件并打印

    在myclass之中创建类文件,这个myclass目录是自己创建的. 编译的时候会报如下的错误: 很明显就是没有导入包的结果 见这个API网站,则可以找到响应的包,当然还有java的api文档 htt ...

  8. Java学习笔记——I/O流

    朝辞白帝彩云间,千里江陵一日还.两岸猿声啼不尽,轻舟已过万重山. --早发白帝城 我们老师写代码有个特点,就是简洁.每一句的意图都十分明确.所以他讲课的速度也比较快. 跑题了,说说I/O流: 1.字节 ...

  9. Fiddler插件 --- 解密Elong Mapi请求参数及响应内容

    当前问题: 在我们日常的Web/App测试过程中, Fiddler是一大辅助利器:在我们团队,也经常使用Fiddler进行App抓包测试. 艺龙 App使用的REST(内部称为Mapi)接口,在使用过 ...

  10. JAVA 编程规范

       软件开发技术规范 PTHINK-DEVELOP-JAVA-091010         Java语言编程规范   2009-10-10发布                2009-10-11实施 ...