1.目的:由于接口众多,服务端变更接口,会造成服务停用更新,造成客户端不能使用或报错,

在此评估【Web中心】此服务端,接口接口参数增加或减少,是否对客户端造成影响

2.评估内容:服务端增加单值参数,服务端减少单个值参数,Mod对象增加参数,Mod对象减少参数,

(而Json数据类型在此不作评估内容,是因为Json对象反序列化具有很好的伸缩型,不会影响客户端调用方)

3.附PCB工程系统集成示意图:

一.Web服务端增加单个值参数

改前-- 服务端(1个参数):

        /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(string ar1)
{
return $"getInfoTest传参测试{ar1}";
}

客户端调用(1个参数):

         string result = WebOrc2_.getInfoTest("");
// 返回: getInfoTest传参测试1

改后-- 服务端(2个参数)---增加参数:

        /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(string ar1, int ar2)
{
return $"getInfoTest传参测试{ar1}___{ar2}";
}

客户端调用(1个参数)---客户端不更新接口引用:

        string result = WebOrc2_.getInfoTest("");
// 返回: getInfoTest传参测试1___0

小结:对于服务端接口增加单值参数后,是不会造成客户端调用报错的,服务端对于增加的参数初始值处理:如:int初始0,  string初始null

二. Web服务端减少单个值参数

改前-- 服务端(2个参数):

         /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(string ar1, int ar2)
{
return $"getInfoTest传参测试{ar1}___{ar2}";
}

客户端调用(2个参数):

         string result = WebOrc2_.getInfoTest("",);
// 返回: getInfoTest传参测试1___2

改后-- 服务端(1个参数):

      /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(string ar1)
{
return $"getInfoTest传参测试{ar1}";
}

客户端调用(2个参数)---客户端不更新接口引用:

           string result = WebOrc2_.getInfoTest("",);
// 返回: getInfoTest传参测试1

小结:对于服务端接口减少单值参数后,是不会造成客户端调用报错的

三. Web服务端增加Mod参数

改前-- 服务端(Mod类1个参数):

        /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(ModTest mod)
{
return $"getInfoTest传参测试{mod.ar1}";
}
public class ModTest
{
public string ar1 { get; set; }
}

客户端调用(Mod类1个参数):

            ModTest mod_ = new ModTest();
mod_.ar1 = "";
string result = WebOrc2_.getInfoTest(mod_);
// 返回: getInfoTest传参测试1

改后-- 服务端(Mod类2个参数)---增加参数:

        /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(ModTest mod)
{
return $"getInfoTest传参测试{mod.ar1}__{mod.ar2}";
}
public class ModTest
{
public string ar1 { get; set; }
public string ar2 { get; set; }
}

客户端调用(Mod类1个参数)--客户端不更新接口引用:

            ModTest mod_ = new ModTest();
mod_.ar1 = "";
string result = WebOrc2_.getInfoTest(mod_);
// 返回: getInfoTest传参测试1__

小结:对于服务端接口Mod减少参数后,是不会造成客户端调用报错的,服务端对于增加的参数初始值处理:如:int初始0,  string初始null

四.Web服务端减少Mod参数

改前-- 服务端(Mod类2个参数):

        /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(ModTest mod)
{
return $"getInfoTest传参测试{mod.ar1}__{mod.ar2}";
}
public class ModTest
{
public string ar1 { get; set; }
public string ar2 { get; set; }
}

客户端调用(Mod类2个参数):

           ModTest mod_ = new ModTest();
mod_.ar1 = "";
mod_.ar2 = "";
string result = WebOrc2_.getInfoTest(mod_);
// 返回: getInfoTest传参测试1__2

改后-- 服务端(Mod类1个参数):

        /// <summary>
/// 测试Web接口(单值参数)
/// </summary>
/// <param name="ar1"></param>
/// <returns></returns>
public string getInfoTest(ModTest mod)
{
return $"getInfoTest传参测试{mod.ar1}";
}
public class ModTest
{
public string ar1 { get; set; }
}

客户端调用(Mod类2个参数)--客户端不更新接口引用:

            ModTest mod_ = new ModTest();
mod_.ar1 = "";
mod_.ar2 = "";
string result = WebOrc2_.getInfoTest(mod_);
// 返回: getInfoTest传参测试1

小结:对于服务端接口Mod类减少参数后,是不会造成客户端调用报错的

PCB WCF Web接口增减参数后,在客户端不更新的情况,是否影响客户端,评估测试的更多相关文章

  1. 手把手教你如何优雅的使用Aop记录带参数的复杂Web接口日志

    前言 不久前,因为需求的原因,需要实现一个操作日志.几乎每一个接口被调用后,都要记录一条跟这个参数挂钩的特定的日志到数据库.举个例子,就比如禁言操作,日志中需要记录因为什么禁言,被禁言的人的id和各种 ...

  2. silverlight+wcf 项目 silverlight获得web程序的参数

    silverlight 可以通过属性InitParams 获得参数,如果参数是动态的需要web程序传递的,具体操作如下: web程序后台:AppID,USERID需要的参数 this.frmRepor ...

  3. 使用shell做http web接口,可以传递参数--废弃

    此文章废弃,参考另一篇 参考网址: https://me.jinchuang.org/archives/114.html https://www.cnblogs.com/jinchuang/p/142 ...

  4. JMeter基于http请求的web接口性能测试总结

    [本文出自天外归云的博客园] 基于http请求的web接口性能测试总结 压测的目的:对于Web接口压测的目的最终是要在对数据库造成压力的情况下观察压测服务器的cpu是否达到预警值.memory是否发生 ...

  5. python WEB接口自动化测试之requests库详解

    由于web接口自动化测试需要用到python的第三方库--requests库,运用requests库可以模拟发送http请求,再结合unittest测试框架,就能完成web接口自动化测试. 所以笔者今 ...

  6. Android应用安全之WEB接口安全

    Android应用安全不仅包括客户端的安全,也包括web接口的安全.移动App中的Web接口安全主要分为以下几块: 1.SQL注入漏洞 这是一个不能再常见的漏洞类型了,由于App的特性,开发人员认为使 ...

  7. WEB接口测试之Jmeter接口测试自动化 (一)

    软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试. 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在 ...

  8. WEB接口测试之Jmeter接口测试自动化 (一)(初次接触)

    软件测试自动化从不同的测试阶段分类,可从下层到上层依次分为单元测试-->接口测试-->界面自动化测试. 单元测试一般有开发人员自行完成,而界面自动化测试合适的测试条件又很难达到,测试人员在 ...

  9. 利用 Bean Validation 来简化接口请求参数校验

    团队新来了个校招实习生静静,相互交流后发现竟然是我母校同实验室的小学妹,小学妹很热情地认下了我这个失散多年的大湿哥,后来... 小学妹:大湿哥,咱们项目里的 Controller 怎么都看不到参数校验 ...

随机推荐

  1. linux最常用的快捷键

    1.ctrl+alt+T 调出命令行界面 2.alt+f4 关闭当前窗口

  2. JS数组reduce()方法

    1.语法 arr.reduce(callback,[initialValue]) reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:初始值(或者上 ...

  3. Django - ORM创建基本类

    DBFirst CodeFirst 创建类 1.根据类自动创建数据库表 在app下的models.py中创建表 创建数据库之前,需要在django下的setting.py模块中的INSTALLED_A ...

  4. 最基础的rpm命令

    rpm -ivh package.rpm 安装一个rpm包 rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告 rpm -U package.rpm 更新 ...

  5. codevs 3385 拯救Oier(一) Save Oier—first

    3385 拯救Oier(一) Save Oier—first 传送门  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 青铜 Bronze 题解       题目描述 Descr ...

  6. Mysql数据库操作(二)

    存储过程 1.创建过程 delimiter // create procedure p1() BEGIN select * from t1; END// delimiter; --执行存储过程 cal ...

  7. 121. Best Time to Buy and Sell Stock(动态规划)

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  8. Django——11 状态保持 form表单 登陆注册样例

    Django 状态保持 用户状态例子 实现注册登陆实例 django forms 表单的使用 注册功能 登陆功能   状态保持cookie和session 1.http协议是无状态的:每次请求都是一次 ...

  9. 暑假集训D20总结

    刷题 今天是瞎XX切题的一天 我要是不写题解的话,我自己都不知道刷了多少专题 数学什么的= = 生活 也就那样吧,没啥特别的 这两天倒是特别鬼畜 先是我点了一下某喵的$cena$,然后他的$cena$ ...

  10. hdu 4941 stl的map<node,int>用法

    #include<iostream> #include<cstdio> #include<cstring> #include<map> using na ...