基于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 = ;
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#的接口自动化测试(一)的更多相关文章
- 基于HttpRunner的接口自动化测试平台HttpRunnerManager(二)
https://github.com/HttpRunner/HttpRunnerManager HttpRunnerManager Design Philosophy 基于HttpRunner的接口自 ...
- 基于Jmeter的接口自动化测试实践
在去年实施了一年的三端(PC.无线M站.无线APP[Android.IOS])后,今年7月份开始,我们开始进行接口自动化的实施,目前已完成了整个框架的搭建以及接口的持续测试集成.今天做个简单的分享. ...
- 基于python的接口自动化测试+ddt数据驱动
在测试接口时,一个接口会先写好测试用例,这个用例主要针对功能,传入参时考虑到各种场景,正常的,异常的,如:参数缺省,参数传一个六位数字写用例时考虑边界情况等. 一个接口设计用例时有可能会十几条到几十条 ...
- 基于Python的接口自动化测试框架
项目背景 公司内部的软件采用B/S架构,目的是进行实验室的数据存储.分析.管理. 大部分是数据的增删改查,但是由于还在开发阶段,所以UI的变化非常快,难以针对UI进行自动化测试,那样会消耗大量的精力与 ...
- 基于excel的接口自动化测试框架:支持参数化、关联等
1. 框架结构说明 2. 框架代码实现 action 包 case_action.py business_process 包 main_process.py util 包 global_var.py ...
- 基于excel实现接口自动化测试
本文档介绍如何使用excel管理接口测试用例并一键执行的实现方式,其中包括 python 读写excel, request库的基本操作,接口用例的设计 接口用例设计 用例字段描述 被依赖表达式: 示例 ...
- 基于C#的接口自动化测试(二)
Json多重数据处理方法II:jobj直接向后调用即可 ]["GoodsName"]; 用:分隔的字符串转字典: public static Dictionary<strin ...
- python实现http接口自动化测试(完善版)
今天给大家分享一个简单的Python脚本,使用python进行http接口的自动化测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值 ...
- seldom 2.0 让接口自动化测试更简单
前言 HTTP接口测试很简单,不管工具.框架.还是平台,只要很的好的几个点就是好工具. 测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化. 接口依赖问题:B接口依赖A的返回值, ...
随机推荐
- js的几大数据类型
一. js的几大数据类型 数字:浮点数(3.14)+整数(1): 字符串:包括由任意数量字符组成的序列,例如:'a','one': 布尔值:true+false: undefined:当我们试图访问一 ...
- GoldenGate实施步骤
一.GoldenGate实施环境 source database:oracle 11.2.0.3 target database:oracle 11.2.0.3 需要配置的进程如下: source ...
- 关于quotename的用法
首先,sqlserver里的标识符有一定的规则,比如 你 create table abc 123(...) 那么中间含有空格,它不是符合规则的. 你会写做 create table [abc 12 ...
- Docker - 容器互联
容器互联 通过docker run命令的--link参数可以让容器之间通过连接(linking)系统进行交互. 参数格式:--link name:alias ,name是要链接的容器名称, alias ...
- JS判断PC和移动端设备
1.方法一 function IsPC() { var userAgentInfo = navigator.userAgent; var Agents = ["Android", ...
- poj1847 Tram 最短路Dijkstra
题目链接:http://poj.org/problem?id=1847 Dijkstra算法的模版应用 题意:给你N个点和起点终点,点与点有铁路,接下来的N行分别为点i的情况 第一个数字表示与该点连通 ...
- trap-接收信号_采取行动
trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作. kill和trap等都可以看到信号编号及其关联的名称. "信号"是指那些被异步发送到 ...
- 弹性盒布局display:flex详解
一:弹性盒子 随着响应式设计的流行,网站开发者在设计网页布局时往往要考虑到页面在适配不同分辨率的浏览器时其内部组件位置大小都会产生变化,因此需要设计者根据窗口尺寸来调整布局,从而改变组件的尺寸和位置, ...
- C++构造函数虚函数例题
虚函数: #include <iostream> class A { public: A ():m_iVal() { test(); } virtual void func() { std ...
- redis入门指南-附录A