基于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的返回值, ...
随机推荐
- ubutun 安装php7.1x
服务器ecs上本来跑了一套nginx+php5.5,由于新项目使用的是laravel5.4,所以不得不把php升级,在此记录下在此安装的过程和遇到的问题,总体来说还算顺利 cd /usr/local/ ...
- ObjectARX自定义实体的最近点和垂点捕捉算法
最近点用pickPoint来计算,垂点用lastPoint计算. 一般AcDbCurve类可以用AcGe类的 getClosestPointTo 来实现计算需要的点值. 下面是代码示例: case A ...
- O(nlogn)实现LCS与LIS
序: LIS与LCS分别是求一个序列的最长不下降序列序列与两个序列的最长公共子序列. 朴素法都可以以O(n^2)实现. LCS借助LIS实现O(nlogn)的复杂度,而LIS则是通过二分搜索将复杂度从 ...
- Thinkphp与CI的区别
深入学习一门新技术的最好方法就是看官方文档. ThinkPHP5.0文档: http://www.kancloud.cn/manual/thinkphp5/118003 官方的说辞是: 主要特性 : ...
- 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中
[exp/imp]将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后 ...
- Github开源:Sheng.RabbitMQ.CommandExecuter (RabbitMQ 的命令模式实现)
[Github]:https://github.com/iccb1013/Sheng.RabbitMQ.CommandExecuter Sheng.RabbitMQ.CommandExecuter 是 ...
- haproxy安装配置for mysql负载均衡(ubantu)
1.安装pcre apt-get update (apt-get install openssl libssl-dev ==>可能需要安装的依赖包) apt-get install libpc ...
- Hopfield神经网络实现污染字体的识别
这个网络的内部使用的是hebb学习规则 贴上两段代码: package geym.nn.hopfiled; import java.util.Arrays; import org.neuroph.co ...
- linux下归档、解压缩工具:tar命令
tar是一个类似于windows下的解压缩工具,可以将一大堆文件或目录打包成一个文件,还可以通过特定选项使用压缩工具进行解压缩. 语法: tar (选项) (参数) 常用选项: -c:创建打包文件. ...
- hdu1312 Red and Black 简单BFS
简单BFS模版题 不多说了..... 直接晒代码哦.... #include<cstdlib> #include<iostream> #include<cstdio> ...