灾备测试

          这里说的灾备测试主要指的是在我们测试过程中手工无法模拟,但是在用户使用产品的时候由于网络的原因又是会经常发生的情况,具体指的就是网络延时、请求失败、session失效等情况,下面我们就来看下针对这些情况我们该如何构造测试环境;

         整体思路:我们可以在页面上配置某个接口网络延迟,请求失败,session失效的几种情况选择,把这几种情况存储到一个表里面,如下:

针对网络延迟,我们可以通过thread.sleep的方式,而请求失败和session失效的情况,合作方的报文都会有相应的返回码,一般情况下我们模拟

这些情况都是设置相应的返回码,具体实现如下:

if(zbValue != null && zbValue.equals("delay")){
			BusinessIni iniDelayTime = new BusinessIni();
			iniDelayTime.setIniName(SessionKey.SRZB_PA_DT);
			iniDelayTime = busiConfigService.selectIni(iniDelayTime);
			int delayTimeValue = 1000;
			if(iniDelayTime != null){
				delayTimeValue = Integer.parseInt(iniDelayTime.getIniValue());
			}
			try {
				Thread.sleep(delayTimeValue);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		
		if (ini != null && zbValue != null && !zbValue.equals("failure")) {
			if(zbValue.equals("session")){
				retMap.put("resultCode", "S0003");
				retMap.put("resultMessage", "flow<" + flowId + ">不存在或已超时!");
			}else{
				String birthday = ini.getIniValue();
				if (birthday.equals(idNo)) {
					retMap.put("resultCode", "C0000");
					retMap.put("resultMessage", "续保确认成功");
				} else {
					retMap.put("resultCode", "C0006");
					retMap.put("resultMessage", "续保确认失败");
				}
			}
		} else {
			retMap.put("resultCode", "S0005");
			retMap.put("resultMessage", "数据校验失败");
		}
这部分实现都是在mock结果的过程中,所以如果需要接口返回期望的结果时,可以设置完后,再去调用mock接口,这时就可以得到期望的异常情况了。

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

计算机原理(四) - 2016-07-04 22:07:17

2. 虚拟存储器   虚拟存储器我们一般也称为虚拟内存(和Windows中的虚拟内存不是一个概念,但是有关联),它的基本思想是: 每个进程都有自己的地址空间; 每个地址空间被分为多个块,每个块称为页,每个页有连续的地址空间; 这些页被映射到物理内存,但不是所有也都在内存中程序才能运行; 当使用的页不在物理内存中时,由操作系统负责载入相应的页;   在实模式下,CPU将偏移地址和段寄存器,基址寄存器等进行计算得到的实际的物理地址。 而在保护模式下,引入了虚拟内存的概念,在虚拟内存中使用的地址称为 虚拟地址(
VirtualBox基础 VirtualBox磁盘Disk介绍 VirtualBox的磁盘格式 磁盘的操作Linux篇 追加一个新的磁盘用以扩充操作系统的磁盘容量 1 创建新的虚拟盘 2 Virtualbox的Linux挂载分区 21 查看现在系统的磁盘空间 22 创建新分区 23 格式化和挂载新磁盘 24 修改启动加载文件使每次开机时都能自动挂载磁盘 25 把u02的访问权限赋予给Oracle用户 追加一个共享磁盘用以方便主机和虚拟机数据文件共享 1 关闭虚拟机添加共享文件夹 1 启动虚拟机设定权限 虚
在使用Maven的过程中,经常会遇到几个核心的概念,准确的理解这些概念将会有莫大的帮助。 1. POM(Project Object Model)项目对象模型 POM 与 Java 代码实现了解耦,当需要升级版本时,只需要修改POM,而不需要更改Java代码,而在POM稳定后,日常的Java代码开发基本不涉及POM的修改。 2. 坐标 groupId , artifactId , version 三个元素是项目的坐标,唯一的标识这个项目。 groupId 项目所在组,一般是组织或公司,artifactId

Ionic、SASS、MVVM、LESS简介 - 2016-07-04 18:07:09

I onic _百度百科 ionic [1]    是一个专注于用WEB开发技术,基于HTML5创建类似于手机平台原生应用的一个开发框架。绑定了AngularJS和Sass。这个框架的目的是从web的角度开发手机应用,基于PhoneGap的编译平台,可以实现编译成各个平台的应用程序。 ionic的开发添加 android 和 ios 环境。 ionic提供很多 css 组件 [2]    和javascript UI库。 ionic可以支持定制android和ios的插件,也支持服务端REST的敏捷开发。

计算机原理学习(一) - 2016-07-04 15:07:21

计算机基本原理        现代计算机,大部分都是基于冯诺依曼体系结构,而我们这里谈论的也是此问前提。冯诺依曼的核心是:存储程序,顺序执行。所以不管计算机如何发展,基本原理是相同的。计算机程序实际上是告诉计算机做什么  冯诺依曼体系结构 冯诺依曼体系结构有以下特点: 计算机处理的数据和指令一律用二进制数表示; 指令和数据不加区别混合存储在同一个存储器中; 顺序执行程序的每一条指令; 计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 冯诺依曼体系结构的计算机必须具有如下功能: 把需要的

Shiro 安全框架学习 - 2016-07-04 15:07:53

Shiro 安全框架学习 一、Shiro简介 Apache Shiro是Java的一个安全框架。功能强大,使用简单的Java安全框架,它为开发人员提供一个直观而全面的认证,授权,加密及会话管理的解决方案。 实际上,Shiro的主要功能是管理应用程序中与安全相关的全部,同时尽可能支持多种实现方法。Shiro是建立在完善的接口驱动设计和面向对象原则之上的,支持各种自定义行为。Shiro提供的默认实现,使其能完成与其他安全框架同样的功能。Apache Shiro相当简单,对比Spring Security,可能

重新认识HashMap(in JDK1.8) - 2016-07-04 15:07:42

摘要 HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。 简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeM
在学习Struts2之前先来了解一下什么是Struts2: Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的 体系结构 与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机
Protocol Buffer   Google Protocol Buffer又简称Protobuf,它是一种很高效的结构化数据存储格式,一般用于结构化数据的串行化,简单说就是我们常说的数据序列化。这种序列化的协议非常轻便高效,而且是跨平台的,目前已支持多种主流语言(3.0版本支持C++, JAVA, C#, OC, GO, PYTHON等)。   通过这种方式序列化得到的二进制流数据比传统的XML, JSON等方式的结果都占用更小的空间,并且其解析效率也更高,用于通讯协议或数据存储领域是非常好的。  

计算机原理(二) - 2016-07-04 14:07:55

1. 内存工作原理   CPU和内存是计算机中最重要的两个组件,前面已经知道了CPU是如何工作的,上一篇也介绍了内存采用的DRAM的存储原理。CPU工作需要知道指令或数据的内存地址,那么这样一个地址是如何和内存这样一个硬件联系起来的呢?现在就看看内存到的是怎么工作的。   1.1 DRAM芯片结构 上图是DRAM芯片一个单元的结构图。一个单元被分为了N个超单元(可以叫做cell),每个单元由M个DRAM单元组成。我们知道一个DRAM单元可以存放1bit数据, 所以描述一个DRAM芯片可以存储N*M位数据。