首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

测试环境没有上游系统的数据,测不了怎么办 ?(补充版)

读者提问 阿常回答 补充背景: 系统 A 与 系统 B 数据交互的方式:系统 A 直连系统 B 的数据库。 读者提问: 我们团队负责测试的系统A,数据源来自兄弟团队负责测试的系统B。...现在存在的问题是: 系统B 的生产环境和测试环境都是生产数据,我们在测试环境没有数据可测,只能上生产验证。 有什么解决办法吗?...阿常回答: 短期解决方案:在你们系统 A 的测试环境同步一份系统 B 的生产环境数据。 长期解决方案:搭建大数据平台,将所有上游系统的数据都同步到你们的大数据平台。...读者朋友阿朵问阿常上述问题:测试环境没有上游系统的数据,怎么办 ?...为了校验不同的规则,阿朵需要对源数据进行相关改造以覆盖所有的场景。但是源数据在系统 B,阿朵没有权限去改造系统 B 的数据。

36110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    线程的补充

    ThreadLocal ThreadLocal让线程有自己的局部变量,其中重要的方法有:set(),get(),remove() ThreadLocal的使用 public static void main...thread2.start(); } 线程1的输出:我是线程1的消息 线程2的输出:null 线程1存的内容,只有线程1能使用,其他线程拿不到 2....内存泄漏 ThreadLocalMap的生命周期跟Thread一样长,如果没有手动删除对应key就会导致内存泄漏,而不是因为弱引用,想要避免内存泄露就要手动remove(),key是弱引用,值不是 4....线程死锁 互斥条件:线程使用的资源不共享 请求与保持条件:一个线程有一个资源且等待获取一个被其他线程拥有的资源 非剥夺条件:分配的资源不能从相应的线程中被强制剥夺 循环等待条件:一个线程等待其他线程,其他线程又等待该线程...避免死锁: 固定加锁的顺序(针对锁顺序死锁) 开放调用(针对对象之间协作造成的死锁) 使用定时锁tryLock(),如果等待获取锁时间超时,则抛出异常而不是一直等待!

    35940

    论文研读-用于约束多目标优化的新型双阶段双种群进化算法补充材料

    论文研读-用于约束多目标优化的新型双阶段双种群进化算法补充材料 A Novel Dual-Stage Dual-Population Evolutionary Algorithm for Constrained...从表二和图4可以看出,尽管种群仍在探索新的地区,平均点从第1代到第2代没有变化,估计的理想点和估计的最低点从第2代到第3代没有变化。...其余的设置和运算符都没有改变。实验结果如表7所示,根据表7的结果,我们有如下的观察。 这六种算法都有自己擅长解决的问题。...例如,auxPop比率较小的版本适用于解决具有易于找到的约束PFs(如LIRCMOP7和LIRCMOP8)的问题。...原因可能是,在我们的DD-CMOEA设计中,mainPop不仅用于寻找可行的解决方案,还用于指导auxPop在开发阶段的移动。然而,在变体中,在开发开始时,随机生成的群体被用作主要POP。

    1.3K30

    linux基本指令的补充

    888.txt 1111 2222 3333 333333 4444 444444 8888 sort排序规则:从左向右,每行的第一个字母开始按ascii值进行比较,谁的ascii值小就放在前面sort...手册对应的内容也显示出来了 5. grep指令 1.作用 文本行过滤工具 将指定文本内容按照特定关键字来进行按行筛选 这里就要用到上一节提到的1——1000的带有编号的hello wold 的创建...creating: test/ [yzq@VM-8-8-centos my]$ tree test test 0 directories, 0 files 将test.zip压缩包剪切到my目录下,解包后发现没有数据存在...是因为 打包的时候没有把里面的东西 打包并压缩 zip -r 将里面的内容也打包并压缩 zip -r 文件名.zip 文件名 6.6 9.9 dir game lesson5 mk...,再剪切到my目录中打开 发现有test内部的内容啦 4. unzip -d 解包到指定目录下 需要注意的是 虽然解包了 但原有位置的.zip依旧存在 6.6 9.9 dir game

    86640

    关于 GitHub 的若干补充

    在通读「史上最简单的 GitHub 教程」的系列博文之后,相信大家已经初步了解以及会使用 GitHub 进行常见的操作啦!为了大家玩的更好,在此给出 GitHub 的若干补充。...Point 1:查看Repo数据 对于一个开源项目,我们可以清晰的查看其commit记录的情况(可以用图形的方式表现出来),如果这个项目有多个分支以及有过合并分支的记录,那么我们也可以查看其合并分支的情况等...观察上图,显然我们可以发现其展示出来的结果为star数大于1000的开源项目。...我一直认为「程序员不应该只局限于某种语言的使用者,而是应该成为语言的参与者」,点点滴滴,皆是学问,看到了、记住了,便是收获、便是进步。...在「那些年,关于 Java 的那些事儿」系列博文中,作者将和大家一起分享 Java 中那些值得我们了解的事儿,我在这里,你在哪里?

    90380

    fusionUI表单组件的补充

    前面文章我们介绍了fusionUI表单组件的使用,这里有一些不补充,假如我们的表单填写工程中,需要实时操作一些值,或者说是实时获取某些输入项的值,该如何操作呢?...有如下集中方案,监听每个组件的change事件,组件变动即可得到变化的值。...还有一种方式,是fusion为我们提供的,我们可以向Form表单传递一个参数,这个参数上篇文章没有提高,这里做个补充,什么参数呢?...属性,当表单中的上传了图片组件时,chang执行,postdata变化,图片实时显示。...这样,当触发submit事件时,我们既可以从函数的参数获取表单的值,也可以从postdata获取值。 以上便是fusionUI上传组件的补充,希望对你有所帮助。

    1K30

    iOS流布局UICollectionView系列二——UICollectionView的代理方法

    ,也介绍了瀑布流布局的过程与思路,这篇博客是上一篇的补充,来讨论关于UICollectionView的代理方法的使用。...协议         这个协议主要用于collectionView相关数据的处理,包含方法如下: 首先,有两个方法是我们必须实现的: 设置每个分区的Item个数 - (NSInteger)collectionView...collectionView willDisplaySupplementaryView:(UICollectionReusableView *)view forElementKind:(NSString *)elementKind...这个方法用于设置要展示的菜单选项 - (BOOL)collectionView:(UICollectionView *)collectionView canPerformAction:(SEL)action...forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(nullable id)sender; 这个方法用于实现点击菜单按钮后的触发方法,通过测试

    2.1K20

    关于Consul测试的几点补充

    这是学习笔记的第 2060 篇文章 最近在完善Consul相关的一些高可用方向的升级,目前是基于MHA+Consul的方案,对于Consul方面算是做一些普及和推广,而对于MHA则是处于保守的维护状态...当然前提是一些版本规划能够统一,而且是与时俱进,在此补充几点关于service_name测试的一些建议。...比如我们搭建一套平行的环境,端口配置不同,则可以和业务方进行对接测试,测试的时候使用的都是新的端口,这样我们可以在线上真实的模拟服务的切换情况,而等待测试完成之后,则将环境重置,恢复原来的端口和服务配置...4)在第3步的基础之上,我们可以开启新的服务的MGR特性,然后重新构建新的MGR secondary节点,这样我们就可以快速的把MySQL服务从原本的MHA切换到了MGR,前提是应用的基础配置满足(比如表要有主键等...,这样一来应用一来的就不是单纯的域名服务,而是对这两类服务做了解耦,当然从这个层面来看,对于应用端的逻辑改造会有一定的代码量,但是收益也是巨大的。

    76020

    关于迭代与递归的补充

    递归 大家有没有想我的Python呢?这几天挖粽子,挖到自闭,还好挖到一个,大家快去补天挖粽子吧!我知道这是废话。连Python都不会挖什么粽子。那不还赶快学起。...这是函数的最后一章,下一章《字典》快点学习吧,开始我们的笔记 等等,差点忘记了,为了赶时间,我只能舍弃无关的图片,但又要保障大家的质量。...这个故事永远也讲不完,因为没有递归结束条件。老师讲递归时总是说,递归很简单,一个递归结束条件,一个自己调用自己。如果递归没有结束条件,那么就会无限递归下去。...在编程的时候,没有递归结束条件或者递归过深,一般会造成栈溢出。 网络 怎么样理解了吗?有的同学对迭代也不了解,这里也提一下 迭代算法是用计算机解决问题的一种基本方法。...网络 这样的解释懂了吧。 递归从原理上来讲就是不断地调用自身的一个行为,迭代就是重复同一个操作的,并从原有的值变成新值 例子 >>> def number(): ...

    48220

    Flutter中的Key详解(补充)

    本文是对Flutter中的Key详解的补充,建议读本文前先读完Flutter中的Key详解。...oldWidget.runtimeType == newWidget.runtimeType && oldWidget.key == newWidget.key; } 这个函数用于判断...如果没有设置key,那么他们的key就都是null,此时就只需要判断新、旧Widget的runtimeType即可。...最终的结果就是,虽然Widget被交换了位置,但是所有的Element还是按照原来的位置被重新复用了,Element中存储的State中的数字也就被复用了;同时因为Element的复用,当颜色发生变化的时候...)一致的新的Widget(newWidget),那么该Element还是会被保存下来复用,并重新建立Element和新widget位置的对应关系;相反,如果没有找到一致的,那么旧的Element就会被销毁而重新创建

    61530

    Python补充01 序列的方法

    下面的内建函数(built-in function)可用于序列(表,定值表,字符串): # s为一个序列 len(s)         返回: 序列中包含元素的个数 min(s)         返回:..., 如果任一元素为True的话 下面的方法主要起查询功能,不改变序列本身, 可用于表和定值表: sum(s)         返回:序列中所有元素的和 # x为元素值,i为下标(元素在序列中的位置) s.count...(x)     返回: x在s中出现的次数 s.index(x)     返回: x在s中第一次出现的下标 由于定值表的元素不可变更,下面方法只适用于表: # l为一个表, l2为另一个表 l.extend...下面是一些用于字符串的方法。尽管字符串是定值表的特殊的一种,但字符串(string)类有一些方法是改变字符串的。...width为一个整数,用于说明新生成字符串的宽度。

    69480

    关于GSEA的几点补充说明

    之前的文章中介绍了GSEA软件的使用和结果解读,但是有几点漏掉了,在本文中补充一下。首先是Leading Edge对应的3个统计量,示例如下 ?...对于转录组数据分析而言,我们通常会采用DESeq2等软件进行差异分析,在差异分析的结果中已经给出了计算好的foldchange值,转录组的差异分析是非常复杂的,涉及到非常多的算法,比如归一化方法的选择,...GSEA软件默认的输入是基因表达量矩阵和样本分组,然后内置的进行归一化,进行差异分析,计算singal2noise等统计量,其本质就是自己进行了差异分析,计算出类似foldchange的统计值,其归一化算法是否适用于我们输入的表达量矩阵...,在计算基因的foldchange值时有没有考虑生物学重复本身的变化程度,这些都导致其计算出的foldchange值并不能满足我们的需求,更加有效的做法是采用专用的差异分析软件计算出的foldchange...phenotype适用于生物学重复数目大于7个的情况,而gene set试用于生物学重复小于7个的情况。

    1.3K20

    第十四章的补充

    一些相关的BIF issubclass(class,classinfo) 如果第一个参数(class)是第二个参数(classinfo的一个子类),则返回TRUE否则则返回False 一个类被认为是其自身的子类...classinfo可以是类对象组成的元组,只要class是其中任何一个候选类的子类,则返回TRUE 其他情况会抛出一个TypeError的异常 >>> class A: ......TRUE 如果第一个参数不是对象,那么永远返回false classinfo可以是类对象或者类组成的元组,只要object其中任何一个候选对象的实例。...defaule(可选参数)的值;如果没有则会抛出ArrtributeError异常 >>> hasattr(c1,'x') True >>> getattr(c1,'x') 0 >>> getattr(...AttributeError: 'C' object has no attribute 'y' >>> setattr(object,name,value) 与getattr()对应,setattr()可以设置指定属性,如果没有则会创建一个新的属性并赋值

    44020
    领券