基于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;
                }
            }

        }
时间: 2024-08-27 09:05:00

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

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

https://github.com/HttpRunner/HttpRunnerManager HttpRunnerManager Design Philosophy 基于HttpRunner的接口自动化测试平台: HttpRunner, djcelery and Django_. HttpRunner手册: http://cn.httprunner.org/ Key Features 项目管理:新增项目.列表展示及相关操作,支持用例批量上传(标准化的HttpRunner json和yaml用例

基于python的接口自动化测试框架

公司内部的软件采用B/S架构,大部分是数据的增删改查,由于还在开发阶段,所以UI界面的变化非常快,难以针对UI进行自动化测试,那样会消耗大量的精力与时间维护自动化脚本.针对此种情况,针对接口测试较为有效. 工具选择 针对接口测试的工具也很多,例如soup UI, robot framework ,甚至jmeter这样的性能测试工具也可以进行接口测试. robot framework测试框架有很多的第三方库可以使用,采用的是填表的方式进行,较容易上手,但是无法深入底层的了解客户端与服务器的交互过程

Python 基于python实现的http+json协议接口自动化测试框架源码(实用改进版)

目录 1.      写在前面 2.      开发环境 3.      大致流程 4.      框架简介 5.      运行结果展示 6.      文件与配置 7.      测试接口实例 n      1.登陆接口 n      2.支付密码更改接口 8.      数据库设计 9.      测试用例.测试数据准备 10.        模块与类.函数设计 11.        代码实现 a)         class congfighttp.ConfigHttp b)      

简单实现接口自动化测试(基于python+unittest)

简单实现接口自动化测试(基于python+unittest) 简介 本文通过从Postman获取基本的接口测试Code简单的接口测试入手,一步步调整优化接口调用,以及增加基本的结果判断,讲解Python自带的Unittest框架调用,期望各位可以通过本文对接口自动化测试有一个大致的了解. 引言 为什么要做接口自动化测试? 在当前互联网产品迭代频繁的背景下,回归测试的时间越来越少,很难在每个迭代都对所有功能做完整回归.但接口自动化测试因其实现简单.维护成本低,容易提高覆盖率等特点,越来越受重视.

如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725

如何简单实现接口自动化测试(基于 python) 2017年09月05日 11:52:25 阅读数:9904 GitChat 作者:饿了么技术社区 原文:如何简单实现接口自动化测试(基于 python) 关注微信公众号:GitChat 技术杂谈 ,这里一本正经的讲技术 一.简介 本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势,然后简单讨论了一下接口测试框架的要点,最后介绍了一下我们目前正在使用的接口测试框架pithy.期望读者可以通过本文对接口自动化测试有一个大致的了解. 二.引言

Python 基于http接口自动化测试

设计原理 基于http协议接口的测试设计,莫过于Python的requests库,简单粗暴易理解. 设计模式 采用python的flask框架,搭建一套接口自动化测试平台. 测试用例维护:采用Excel 测试结果保存:采用MongoDb存储,HTML页面展示 相关核心代码介绍: Excel模板如下: 看Excel的定义命名,基本理解,每个参数的含义 介绍: B1:要测试的接口地址 B2:该测试接口的请求参数,以"#"分隔[便于分割] B3:登录的URL,若测试不需要登录 B4:登录的j

基于jmeter+ant实现的接口自动化测试

jmeter+ANT接口自动化测试框架 项目说明 本框架是一套基于jmeter+Ant+Excel+Python而设计的数据驱动接口自动化测试框架,jmeter 作为执行器,Ant 作为构建工具,进行构建测试,本框架无需你使用代码编写用例,测试用例存储在csv中,在csv中可以进行接口用例编写,接口断言,用例运行控制. 技术栈 jmeter Ant Python 环境部署 1.安装JDK 2.安装Jmeter 3.安装 ANT 1.解压apache-ant-1.10.5-bin.zip到任意目录

基于Python接口自动化测试框架(初级篇)附源码

引言 很多人都知道,目前市场上很多自动化测试工具,比如:Jmeter,Postman,TestLink等,还有一些自动化测试平台,那为啥还要开发接口自动化测试框架呢?相同之处就不说了,先说一下工具的局限性: 1.测试数据不可控:    接口虽然是对业务逻辑.程序代码的测试,而实际上是对数据的测试,调用接口输入一批数据,通过断言代码验证接口返回的数据,整个过程围绕数据测试.    如果返回的数据不是固定的,是变化的,那么断言失败,就无法知道是接口程序错误引起的,还是数据变化引起的,所以就需要进行测

零成本实现接口自动化测试 – Java+TestNG 测试Restful service

本文是转载Wade Xu的文章http://www.cnblogs.com/wade-xu/p/4229805.html 接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, 数据分离,Java+Maven+TestNG 本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性