精华内容
下载资源
问答
  • 工欲善其事必先利其器,中国金融工具创新之企业债券创新报告就是你学习这一行业最好的工具,希望中国金融...该文档为中国金融工具创新之企业债券创新报告,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以...
  • “你了解sql,hive等工具吗” “不了解“(想诱导我去写数据库?打扰了) “那机器学习和深度学习常用的指标都有哪些呢” “mAP,recall,准确率,查准率之类的,一般学术界用mAP” “面临一些银行产品推销的...

    浦发银行 信息科技 创新岗 面经

    信息科技岗位又分大数据、系统开发、创新岗(AI)

    上海总行,在莲花路1688号面试,因为离得很远,六点就起来坐地铁了,一直看牛客凌晨3点才睡着,一路在地铁上’钓鱼’ORZ

    七点五十左右到的大门,登记后进去发现已经有几个同学在沙发区等候了,瞬间心情变紧张了,到了接近八点半有个又高又漂亮的hr小姐姐叫我们去里面走廊等,签到后就坐在凳子上排队等候了。

    签到等待
    差不多九点分批去机试,走到三楼机房,瞬间从高大上的房间走到了低档网吧(不是网咖)——机房/开发部。。。
    然后签到上机,打开后有道练习题,建议做一下,提交看看通过率,因为事先知道只支持c、c++、java,不支持python,结果看到在线编译器居然有了python,但是练习题果然还是通过率为0.00%,尴尬,明明就是一道输入a,b,求a+b的题目,无论我是否加上输入input,还是return或者print,都是0,然后旁边的技术人员说python兼容性不太好,保存好提交后会人工审查。最骚的是python编译器只有桌面上原始的命令行c/c艹可以用dev-c++, java都可以用eclipse,赤裸裸的歧视python T_T 博主并没用过原始ide,不知道如何换行继续输入,就直接硬着头皮往在线测试里硬刚代码进去了

    机考题:

    题目一共有三道,总共是50分钟,一点开始作答就无法停止了,有时候会蜜汁闪退,那只能重新登录进去重新编译了,所以一言不合就要点提交代码。最后点交卷,然后机考签到处签到再去之前等待区域等待面试通知,在做机考的时候已经有人在面试了。

    第一题:给三个数abc,能否在1000-9999之间找到一个数x,满足x%a=0且(x+1)%b=0且(x+2)%c=0,找不到这个数x就返回Impossible

    第二题:判断两个字符串是否是异位,比如abcn 和 banc是一对,anc和nac是一对,其实就是判断奇偶交换。

    第三题:给一个8元素数组例如1 3 0 3 6 0 0 9将所有0放后面,其他数字顺序不变,结果为1 3 3 6 9 0 0 0

    博主是菜鸟中的拖拉鸡,但是这个难度还是会用暴力遍历的,除了第二题缺了一行代码就到时间了,其他的应该都没问题,所以通过率均为0.00%表示很无语 '_> ’ 尤其是旁边的同学十来分钟就用java写完了三道100%,菜鸡瑟瑟发抖, 不过后来我问了两个也用python的同学,他们表示也很伤,都是0.00%通过率,博主就有心理安慰了

    然后就是跟人家唠嗑拉家常,被各种大佬简历项目和面试经历血虐,到了十点多hr还发了一些零食,肚子饿的咕咕响,就拿了点东西吃,因为心态已经完全放轻松了,毕竟大佬这么多,被刷也是正常,紧张也没用,我就抱着等会进去跟面试官聊天的心态蹭吃蹭喝 ‘工 ‘

    等到差不多十一点半的时候,被叫到面试房间门口等待,前面还有两位同学在排队,都是投系统开发的,好像没怎么碰到投我投的创新岗的同学,聊了一会发现又是代码能力比我强多了的大神,索性抱起头伸懒腰坐着佛系等候了。
    在这里插入图片描述

    每个人大概面了15-20分钟,有长有短,等我进去的时候已经是十二点多了,然后推门进去后,里面六个面试官,从左到右数,奇数位是女性,偶数位是男性,中间的看起来像是leader一些,左边一位姐姐应该是记录员,等我把简历发给他们然后坐下发现桌上有一沓白纸一支笔,我瞬间觉得这下要出丑了,手撕代码跪着出去的节奏啊!

    进门一位面试官说:“欢迎参加浦发面试,看你第一志愿是创新岗,如果让你选开发可以吗?

    我也是醉了,从入门到劝退吗?我说我主要的方向是人工智能,如果做系统开发怕是不能胜任(“言下之意你还是另请高明吧”

    然后让我自我介绍,博主把头天晚上想好的自我介绍说了一下,主要说了家乡、本科研究生学校专业,然后稍微说了一下简历上没有的项目,然后以两句个人爱好结尾,看起来还是成功吸引到面试官们的(也可能是他们的专业素养使得他们不感兴趣但是演的很像),然后说完后房间里蜜汁沉默了几秒,一位女面试官看了下我的简历和研究生成绩单(记得带进去),说:

    “你课程没啥跟人工智能相关的”,我回答说本科的没有,研究生的有,然后她就问我:
    **“说一下常见的机器学习方法”**幸好我提前复习了一下,就讲了knn、kmeans、cnn、pca、lda几个名词,对方好像也不是很懂这些,就没细问。
    对方接着问:“那你觉得你做的研究对浦发银行有什么帮助吗”

    我心想公司就是公司,很现实,上来就问能不能带来收益,我就回答:“我主要做的是人工智能,方向是人脸识别目标检测啥的,我之前稍微用过一点浦发银行的客户端,感觉还不错,虽然我没有银行卡用的是游客身份看的。”

    “你了解sql,hive等工具吗” “不了解“(想诱导我去写数据库?打扰了)
    “那机器学习和深度学习常用的指标都有哪些呢” “mAP,recall,准确率,查准率之类的,一般学术界用mAP”
    “面临一些银行产品推销的问题,你觉得能提供什么帮助呢” “要建模,根据用户的消费特征建立用户画像,比如说A客户和B客户分别习惯买A产品和B产品,那么可以根据他们的一些行为特征来建立模型,看看他们特征之间的相似度如何,据此判断互相推销对方常买的产品采纳的可能性为多少”
    “对于一些存款预测有没有什么思想” “如果数据本身有周期性或者规律,用lstm模型应该可以预测,特征都靠深度学习来学习”

    后面都是一些关于这个话题的问答,我感觉是在套我的方案。。还问我如何说服客户来使用我们的预测产品。

    感觉就是面试官在人工智能这方面不太懂,所以主要是我在解释一些基础性知识
    “sql会用吗”(刚刚问了一遍)“不会,不过目前的项目接下来要用,会学”
    “你平时做的项目主要是人脸识别,那对我们客户端有什么帮助吗”(疯狂套方案)

    博主询问了一下浦发客户端人脸识别的速度、安全性和检测效果,结果都挺好,我就不知道还有什么地方可以创新了,就答暂时不知道,不了解需求。
    然后就是疯狂暗示我转大数据岗,可是我主要是做图像识别,我就有点不甘心,因为总感觉大数据没啥做的,提高不大,然后他们就说大数据也有很多用到机器学习的地方,然后中间面试官来了一句杀手锏:而且创新方向的话竞争比较激烈,我心想这应该是是委婉告诉我太菜了,不足以胜任ai研究岗位吧,我也没辙了,谁叫我不是cvpr acm 大佬呢,人家建议也比较中肯,此时我犯了个傻,一开始有点坚持不换,听了他们说的又同意换,到后面他们解释说创新岗最近在做深度学习,我就又想再挣扎一下,最后他们说尊重我的选择,然后我一直说我数据处理和大数据很差,怕做不了,然后有个小姐姐居然说可以做得来,然后中间大佬最后劝说了我一顿,我就同意了。。。是不是很没有节操(/捂脸)

    出门后我就去签到处写转岗意向了,然后看了下时间,面了正好18分钟,上午最后一个批,然后领着饭票就去食堂吃饭了,食堂的菜还不错,就是碗比菜多,可能是可以多吃几个菜吧
    在这里插入图片描述

    在这里插入图片描述

    总体来说,机考体验较差,大佬可忽略。面试环节面试官态度很好,基本上全程都是欢声笑语的,没什么压力,毕竟我是带着聊天的心态进去面试的,本来嘛,面试就是对方相信你能胜任这个岗位,值得培养你,你只要说一下自己平时做的啥,聊聊项目经历,语气神态放轻松,不行就拉到,总有地方要你,又不是来上战场九死一生的。(幸亏没有手撕代码,不然我就彻底凉面了)

    以下主要摘抄至网上一些经验贴和面经分享,然后每个分享后面附带博主对于题目的解答,给自己和一些需要的朋友有个参考

    根据博主浏览的经验分享,绝大部分信息科技岗甚至其他很多岗位的面试都是以下流程:

    1、即兴演讲(结构化面试 3面试官对6个学生):每人随机一题,思考两分钟后,回答三分钟

    2020届校招即兴演讲环节已取消!!!

    2、上机测试:三道编程题,较为基础,在线编译器只有C、C++和Java,其他语言写下有人工核查

    3、专业面试(3对1)

    接下来进入正文。

    作者:ChiliWu
    链接:https://www.nowcoder.com/discuss/89384?type=post&order=time&pos=&page=1
    来源:牛客网

    浦发银行信息科技岗(大数据及创新岗方向 & 系统开发方向)——西安

    首先我第一志愿投的是上海的大数据及创新岗方向,第二志愿投的是合肥的系统开发方向,只是把面试地点设置为西安。
    我是7月31号中午12:30场,十点四十左右就到了面试地点,不过浦发的小姐姐提醒我们先去吃饭,然后再过来签到,因为下午面试的时间长达6个小时。面试流程主要分为3个部分:综合面、上机编程考试、技术面,面试的顺序并不是签到的顺序,感觉是随机打乱排的,每个人面试的流程都不太一样,基本上是哪边有空的就先安排你去那边面试,全程都是叫号等号模式。所有的信息科技岗除了大数据方向和信息安全方向的,其他所有岗位都需要做机试。

    一、群面

    进场之后先去抽号,根据你抽到的题目内容进行一个两分钟的准备,我们组3个话题主要包括:

    (1)出国留学;(2)90后跳槽现象;(3)对企业加班的看法。

    问了一下别的同学,好像还有一些话题包括:

    1、沉迷网络列为精神病,赞成这个观点吗?
    2、对现代年轻人租生活的看法;
    3、人工智能;
    4、支付宝对实体银行的冲击等话题。

    二、技术面

    形式是三名技术官对一位面试者。全程上来先自我介绍,然后面试官会让你讲一下你做的项目,他会根据你的项目中涉及到的技术问一些问题。因为我做的项目所采用的技术主要都是基于一些机器学习算法和一些数据挖掘算法,所以面试官提的问题也比较偏向于这一块。好像问了我知道哪些无监督方法,我当时只是介绍了K-means方法,说了它存在的缺点以及一些基于它改进的算法。得知我编程用的是python,问了我python中如何退出循环以及python如何读取文件。另外针对我用到的ML方法问了我模型的评价指标,问了我大数据处理的步骤是什么。好像就这些,全程只有中间的面试官问我问题,个人感觉,他们还是会根据你的导向来问你问题

    三、上机

    上机考试总共有3道题,比较简单,一共50分钟,在线编译器只有C、C++和Java,其实你只需要写出具体的实现部分就行,输入输出都有模板。我们这天大家的题目都一样,主要是:

    1)字符串反转;
    2)1+2/3+3/5+4/7+…数列求和,输出结果;
    3)输入一个字符串,不同的单词用空格隔开,把这些单词的首字母取出并大写输出**,如输入:hello world,输出:HW,不过代码都是要求你实现多行输入的输出的,输入0则停止输入。反正个人感觉编译的界面用着很不舒服。

    以上

    博主分析总结:上机编程较为简单,但是务必想要做好全面准备的面友请亲手编写成功,切勿眼高手低,大佬除外。

    下面说一下对于以上问题博主个人回答,不喜勿喷:

    群面问题解答

    (1)出国留学;(2)90后跳槽现象;(3)对企业加班的看法。4)支付宝对实体银行的冲击等话题

    (1)留学对于每个人有各自不同的意义,有的人想移民奔着绿卡去,有的人想增加文凭含金量,有的人则是为了学术深造,有的人只是想体验一下异国风情,其实留学好不好没有标准的答案,只要条件允许,出国过得踏踏实实,不管在哪里学习都一样,如果好高骛远手高眼低,即便在大牛手下也是一事无成

    (2)对于90后跳槽频繁现象其实无须过分解读,因为成长环境与社会发展,每个年代的人都有每个年代风格,90后生活在衣食无忧的环境下,比较看重自我价值实现,而且对于很多没有成家立业的90后来说,跳槽负担也没有前辈大,再加上职业环境不如以前稳定,可选择也比以前大。其实等到90后在职场多历练几年后也会慢慢沉下心来好好干一份工作,毕竟干一行爱一行。所以与其指责他们不如好好引导他们,树立正确的职场观念。

    (3) 作为一个应届生,对于项目管理并不是很懂,据我在以前做项目经验来看,加班分为几种:
    • 1、工作经验不丰富导致的工作效率不高,加加班理所应当
    • 2、项目马上要上线或者项目炸了,当然要加班弄好
    • 3、自己工作完成后陪着别人可以适当加班,学习一些知识也不错,毕竟一个人回去也没啥事, 但是这种情况下不能加到太晚,那会影响第二天的工作状态,毕竟睡眠不足的人更容易写出质量低下的代码。

    (4)首先支付宝的确对实体银行有一定的冲击,可以粗略分为两个方便:支付结算方式和储蓄方式
    1、支付结算方式大家应该都知道,现在小到路边商贩大到超市大部分都有支付宝结算方式,且大部分人尤其是年轻人喜欢用支付宝支付而不是刷卡,要知道年轻人传播新技术的影响力是最大的。
    2、储蓄方式其实和支付结算方式是相辅相成的,钱存在支付宝里不仅能实现支付结算的钱包功能,也能提供与银行储蓄和理财产品一样的服务,尤其是小额储蓄,因其多样性和便捷性,很多人喜欢购买支付宝理财产品。
    但是支付宝对实体银行的客户分流主要集中在年轻人以及小额交易上,至少很少有人用支付宝而不是刷卡来买房吧?而百万以上的金额还是放在银行比支付宝要放心吧,万一哪天阿里巴巴倒了呢?换一个角度来看其实支付宝也是激励了银行的发展,从支付宝身上也学到了移动支付的方式,各个银行都有了自己的客户端,比如浦发的客户端除了广告多点还是很不错的。

    技术面解答

    1)字符串反转; 2)1+2/3+3/5+4/7+…数列求和,输出结果;3)字符串缩写

    1)

    class Solution(object):
        def reverse(self, a ):
            return a[::-1]
    
    class sum(object):
        def sum(self, n):
            if n == 0:
                print('error! n must > 0')
                return None
            else:
                x = 0
                for i in range(1,n+1):
                    x = x+ (i)/(2*i-1)
                return x
    
    def acronym(a:'char'):
        output = ''
        a = a.split(' ')
        length = len(a)
        for i in range(length):
            temp = chr(ord(a[i][0]) - 32)
            output = output + temp
        return output
    
    while True:
        get_input = input()
        if get_input == '0':
            break
        else:
            print(acronym(get_input))
    

    下一个分享

    作者:我只是弱鸡
    链接:https://www.nowcoder.com/discuss/90871?type=post&order=time&pos=&page=1
    来源:牛客网

    8.4日,大数据方向,共两面,加上机

    综合面:6个人,每人给一份材料,2分钟阅读材料,3分钟演讲,我的是怎么看待,app,纸质阅读,等多样化阅读,并保持阅读高效性

    另外一个材料:中国生产圆珠笔里的主要材料都是进口的,但却是圆珠笔产量第一的国家,你怎么看?

    结束后会有提问,自我介绍,关于材料哪位同学讲的好之类。

    技术面:自我介绍,会问项目的内容,你对投递岗位的理解,你做的项目如果用到银行会有什么应用,技术点不怎么问。

    上机:可选项,可做可不做(开发方向上机必须,题都基础)。三道题,第一题,从求组中找出唯一出现一次得数。第二题,给年月日,判断是方面第几天。第三题,小球从100米下落,每次回弹一半距离,第几次落地后的总距离。

    以上

    圆珠笔:圆珠笔是使用率非常高的工具,市场也非常大,但是因为模具问题,目前我国无法制造出像国外品牌圆珠笔一样圆润光滑的圆珠,国产圆珠笔出水不顺畅,易损坏的缺点使得我们主要靠进口圆珠来制造圆珠笔,没掌握核心技术,我们就只能赚到苦力钱,大头都被国外厂商拿走了,说明工业制造里高质量模具的重要性,同时说明中国的工业因为起步晚,还需要做出很大的努力来赶上国外先进水平

    无纸化阅读:目前有很多电子书工具,包括手机app和以kindle为主流的各种电子书设备,对于喜欢看书的我来说,电子书设备我曾经使用过后,我的感受就是,相对纸质书,电子书更环保,因为不用造纸,更便捷,随身携带方便,更经济,电子资源免费,容量大,一部kindle可以装几千本书。刚买来kindle时觉得这东西可以替代纸质书了,但是随着我使用发现,纸质书还是无可替代的,因为电子书内容繁多,容易分心,今天看一段《平凡的世界》,明天看一节《活着》,到最后看混了哪本都不想看了,可选择性太多导致最后放弃选择,另外就是续航和操作便捷性也是问题,电子设备始终不如纸质书翻得舒适,而且看电子书比纸质书更容易疲劳,还有拿着电子产品和端着一本清香的书籍是完全不同的,我一拿纸质书瞬间整个人静下心来,一切浮躁与我无关。

    机考:1)从数组中找出唯一出现一次的数。

    import numpy as np
    
    def find_only(a:'numpy'):
        output = []
        a = a.reshape(-1)
        length = len(a)
        dic = {}
        for i in range(length):
            if a[i] in dic:
                dic[a[i]] += 1
            else:
                dic[a[i]] = 1
        for key in dic:
            if dic[key] == 1:
                output.append(key)
        return output
    

    2)任意年月日是星期几

    import numpy as np
    import time
    
    def find_date(a:'str')-> list:
        a = a.split(' ')
        print(a)
        year = int(a[0])
        month = int(a[1])
        day = int(a[2])
        date = (year, month, day, 12, 10, 0,5,251,0)
        localtime = time.asctime(date)
        localtime = localtime.split(' ')[0]
        return localtime
    
    a = input()
    print(find_date(a))
    
    

    3)小球回弹距离

    import math
    def all_distance(n:'int')-> int:
        if n <= 0:
            print('n must >0')
            return 0
        elif n == 1:
            return 100
        else:
            x = 100
            for i in range(n-1):
                x = 1/math.pow(2, i)*100 +x
            return x
    
    a = int(input())
    print(all_distance(a))
    

    下一位

    作者:Mr.ZiMing
    链接:https://www.nowcoder.com/discuss/171362?type=post&order=time&pos=&page=1
    来源:牛客网

    笔试部分:
    3.15日晚上笔试,内容很多,首先就是英语(本人是个英语勉强过四级的小菜鸡),不过题也不太难,几道选词填空,还有一道是阅读理解,我个人觉得英语只要不那么差都可以哒~~然后后面考的就多了,什么行测、性格测试、逻辑推理,就是给一些数字,让你找规律(但我这方面真的是不擅长。。当时做的我头都懵了。。。),最后就是专业知识了,,考的不是太难,都是些基础知识,学过编程的应该都没问题。

    总之~~我感觉,,笔试大概就刷一些实在是对没有接触过编程的一类人吧,因为,,,个人感觉笔试都没怎么刷人。。。。。

    笔试结果四五天就出来了,会给你发短信和邮件。

    面试部分:
    面试分了七天,我是3.31号下午面试的一批,地点西安,我在成都实习(解释一下怎么不去成都浦发面试,因为当时来我们学校宣讲的是西安那边的,我也想去西安工作,然后在选面试地点的时候糊里糊涂的也选了西安。。),幸亏是在周末,早上坐高铁直奔西安,一路总感觉时间不够用,,没想到到浦发才1点不到。。然后三点多开始,,那天一下午来了近20个人,很多都是985.211(我一个二本瑟瑟发抖)。

    所有人分两批,一部分先机试,一部分先面试(以前我记得浦发是有群面的,但这次取消了),笔试是三道题,50分钟,语言可以选择Java和C(其他的好像也可以,提交后人工审验),我是Java,有eclipse!!!!(我之前一直以为是在线编程。。),然后他会给出输入输出的一些语句,,会让你补充剩余的部分,那天我们的题目好像都一样,一个是数组元素位置交换,一个是字符串反转,还有一个是约瑟夫环问题,前两个比较简单,后面一个emmmm,我这个菜鸟就拉倒了。

    完了之后就是面试了,一个人大概是15分钟的面试时间,一共好像是5个还是6个面试官,,我记不清了,,反正我进去后感觉被团团围住,,(哈哈哈,真的挺吓人的,,好丢人。。)先让你做自我介绍,然后直接就开始问专业知识了(为什么不先谈谈人生谈谈理想?),问的也很杂,很多,涵盖数据库,框架,Java的一些比较深的东西,(小菜鸡学术不精,很多都模棱两可,还有些都忘得差不多了),问完之后,给我一个算法题,是求一个数的反码,给出思路即可,可我当时太紧张,,硬是把反码和补码的求法给混淆了,哈哈哈,辛亏最后及时反应过来了,,面试官们人超级好一直都是笑容满面,丝毫没有像我之前面试的那么压抑,然后问我有没有签工作呀,感觉我们银行这边的工作环境怎么样呀之类比较轻松的话题,然后基本就结束了,走的时候还让我路上注意安,啊呀。。。面试官们真的是特别温暖了~(然后我又马不停蹄的去赶高铁回成都了,差点没赶上)

    以上

    
    
    展开全文
  • 基于2019-nCoV的SEIR模型的建立与改进

    万次阅读 多人点赞 2020-02-09 11:47:03
    实现 程序 实现工具为matlab %SEIR模型 clear;clc; %参数设置 N=1400000000;%人口数 I=1;%传染者 R=0;%康复者 D=0;%死亡患者数量 E=0;%潜伏者 S=N-I;%易感染者 r=1;%接触病患的人数 a=0.125;%潜伏者患病概率 B=0.6;...

    引言

     前面笔者尝试获取数据,并进行分析;在之前做的logistic模型得到能较好的预测结果。但是想要模拟全过程,logistic是做不到的,于是引入SEIR模型对其进行分析与预测。

    SEIR建模思路

     这是一个带潜伏期的传染模型,和没有考虑潜伏期的SI、SIR的优势就显而易见了。具体的建模思路如下图:

    展开全文
  • 阿里创新自动化测试工具平台--Doom

    千次阅读 2017-12-19 14:02:01
    摘要: 阿里内部诞生一了个依赖真实流量用于自动回归的自动化测试平台,通过创新的自动mock机制不仅支持读接口的回归验证,同时支持了写接口验证,在内部产生了极大价值,有价值的东西就应该分享,目前该工具已经...

    摘要: 阿里内部诞生一了个依赖真实流量用于自动回归的自动化测试平台,通过创新的自动mock机制不仅支持读接口的回归验证,同时支持了写接口验证,在内部产生了极大价值,有价值的东西就应该分享,目前该工具已经作为云服务对外开放。

    背景
    信息系统上线后通常会需要迭代升级甚至重构,如何保证被修改后系统原有业务的正确性非常重要。不复杂的业务系统通过一些常规的自动化测试工具加上人工测试可以解决,但对于业务十分复杂的系统,回归测试将变成一项浩大的工程。
    一个实际的例子:阿里巴巴作为一家以电商为核心的集团公司,交易系统和稳定性的重要性不言而喻。整个交易系统在多年的发展过程中,经历了很多业务的上下线,维护的人员也换了一波又一波,几乎没有人能梳理清楚其中的业务和代码。当它不得不面临一次全面升级的时候,其回归测试的困难度难以想象。因为常规的自动化测试工具需要准备测试数据、编写脚本,因此覆盖率不高,因此无法满足需求重构后的回归验证要求。
    doom平台的出现解决了这一难题,它通过复制线上真实流量去做自动化回归,通过它发现了很多重构带来的bug,同时加快交易重构项目的上线进程。同时通过录制流量作为用例来实现日常自动化回归取代传统编写脚本的自动化回归大大提升了回归效率和覆盖率。
    因为其解决方案的通用性,我们把这它拿出来给大家分享,同时也开放了云服务希望能支持到有需要的用户。

    平台介绍
    什么是doom平台
    doom自动回归平台是一个将一部分线上真实流量复制并用于自动回归测试的平台。 通过创新的自动mock机制不仅支持读接口的回归验证,同时支持了写接口(例如用户下单接口、付款接口)的验证。它最底层借助了java的instrument实现aop因此,目前仅支持java应用的接入使用。其原理图如下:

    图片描述

    它与tcpcopy或者diffy的区别:tcpcopy、diffy是在应用外的网络层实现流量录制和回放的,它们只能实现一些只读页面的验证。doom是在应用内部通过aop切面编程方式实现的流量录制和回放功能,因此可以做到应用内部接口级别的回归验证,当然也支持服务级别或者http级别的回归验证。通过独创的中间件级mock以及内部自定义的mock,可实现写流量的回归验证以及跨环境的回归验证(线上引流到测试环境)。

    应用场景
    系统重构时,复制真实线上环境流量到被测试环境进行回归,相当于在不影响业务的情况下提前上线检测系统潜在的问题。
    可以将录制的流量作为用例管理起来进行日常自动化归回。
    图片描述

    优势
    低成本:无需编写测试用例,通过流量录制形成丰富的测试用例。
    高覆盖:一方面线上大量真实流量确保覆盖率,另一方面支持中间过程的验证,例如发送消息的内容、中间计算过程等等的全对象的对比验证,传统手工编写验证点很难实现。
    支持写流量验证:(注:写流量是指可能导致有数据变更的流量)不用担心写流量回放污染应用数据,支持线上引流到测试环境以及写流量的自动化mock。
    低应用侵入:通过隔离容器技术、字节码级别的AOP技术、中间件级MOCK避免接入类冲突以及降低接入成本。
    如何使用
    doom平台在阿里巴巴内部,特别是一些核心系统得到广泛使用,因此我们决定把这个产品开放出来,以云服务的形式免费提供给大家使用。doom支持 云效 上的应用直接申请使用,也支持任意能访问公网的应用直接申请使用。
    平台文档:接入使用指南
    平台链接:doom平台

    原理
    如何实现回归验证?
    对于web应用来说,请求最终都通过发起http请求方式来完成。我们假定生产环境应用会正常的响应用户的请求,通过aop的方式将请求入参及返回结果以及执行过程中的一些快照数据例如访问数据库的入参和返回结果、访问远程服务器的入参及结果保存下来。然后将快照数据发送给测试机器(代码发生变化的机器)完成一次回放过程。通将落库数据、调用后台请求的数据以及返回结果和线上真实请求发生时的数据进行全量对比,发现其中的差异,从而识别被测试系统的问题。针对后台应用来说也是如此,只是后台应用一般都是通过rpc请求实现,这时只要记录rpc入参、rpc返回值以及中间快照数据用于回放即可。
    图片描述

    如何保证数据库不被污染?
    mock是单元测试常用手段,用来解决接口未完成或者调不通的情况。将这个特性进行延展,在线上执行真实请求时就把写数据库的请求以及对外服务的访问保存下来,在回放时当执行数据库或者调用后台的服务进行mock,这样回放时不会真正的访问数据库,也不会真正的发起对后台服务的调用,因此会影响业务数据,甚至可以在线下环境进行回放,因为mock数据来源于真实请求,也省去了造数据的麻烦。
    图片描述

    如何实现对外系统请求的mock?
    应用会通过各种各样的中间件对外发起rpc请求,可以通过平台配置的中间件隔离来设置,平台客户端会对这些中间件进行aop处理实现自动的mock,不需要人工去配置具体的rpc接口。如果不支持的中间件请联系我们,我们会对其做适配开发。
    如何解决回放时程序执行流程可能和线上真实流程不一致?
    在生产环境程序执行时的一些内存数据状态和回放时测试服务器的内存数据状态往往会出现不一致,这些不一致会导致程序的执行流程不一样。例如本机缓存、内存开关、session查询等等。那么要如何解决呢?平台提供了自定义mock机制,将这些会导致不一致的代码片段进行mock。例如将缓存的get方法进行mock,那么如果线上读缓存时有数据,那么回放时直接可以用这些缓存数据进行mock即可,确保了回放的流程和线上真实执行时一致。
    如何解决对比时的噪音?
    回放时和录制时必然存在一些差异,例如服务器ip、时间、以及一些随机数等等。通过两种方式去解决:

    排除法:平台支持指定字段排除对比,将不需要的字段排除即可。
    指定对比法:将关心的业务数据进对比。
    系统架构
    部署图
    图片描述

    如图上所示,云服务提供配置管理功能,而在用户机房可以通过扩展实现自定义数据存储或者直接使用阿里云oss存储产品来实现用例或者流量的存储。配置之所以集中管理是为了方便平台升级,而支持数据自定义存储则提供给了用户更多的存储选择。
    图中A企业完全使用平台功能,如果平台功能不满足需求也可以像图中企业B一样,基于平台提供的录制、回放等等能力去实现自己的稳定性/回归测试平台。

    客户端服务端架构
    图片描述

    上图为客户端服务端的架构图。客户端为接入应用嵌入的一个功能模块,可以负责流量录制、流量回放、中间件mock、中间件隔离、流量对比分析等等功能。服务端提供客户端相关的配置信息,例如要录制哪些流量,录制比例是多少、哪些ip服务器需要被录制等等。客户端的一些状态信息也会发送给服务端方便展示管理。另外只有当发生对比异常时,服务端才会发送异常数据给服务端用于查看分析。
    要实现不同企业的不同中间件mock,客户端需要扩展不同的中间件mock插件来实现。各个插件通过中间件插件管理器去管理,平台支持一些常用的中间件也支持扩展。除了mock外还需要提供了一个中间件隔离机制,例如通过在中间件最底层做一些隔离,避免在mock失败的情况下不会访问到数据库,保证回放时业务数据的安全性,当然如果是在非生产环境进行回放测试也可以避免这个风险。

    平台开放
    录制数据存储到哪里?
    平台默认将录制数据保存到oss,也支持用户通过扩展实现使用自己的数据存储服务。
    能基于doom平台实现自己的用例管理执行平台吗?
    doom平台开放了流量的录制、回放以及对比的api,有需求的用户可以基于这些能力快速搭建一套属于自己自动化回归测试平台。

    展开全文
  • 这里写自定义目录标题 “ 2020年11月,百度网盘程序互转工具WX2,正式开源!” wx2是一个程序的转换...百度网盘挖掘业务创新点,进行程序矩阵的业务场景探索,同期诞生多个宿主的场景类程序,因此程序互转

    在这里插入图片描述“ 2020年11月,百度网盘小程序互转工具WX2,正式开源!”
    在这里插入图片描述
    wx2是一个小程序的转换工具,它可以一键将原生的微信小程序转化成百度小程序。作为一种轻量级小程序跨宿主解决方案,wx2同时支持文件和组件维度的转换,提升小程序开发者开发效率,改善开发体验,降低小程序多宿主平台的研发成本。
    在这里插入图片描述
    随着业务发展,小程序在社交类用户生态中拥有良好的用户体验,且灵活轻量,因此正在被越来越多的场景落地。百度网盘挖掘业务创新点,进行小程序矩阵的业务场景探索,同期诞生多个宿主的场景类小程序,因此小程序互转工具wx2应运而生。

    wx2的核心价值在于能够通过一份代码生成百度APP宿主小程序代码,针对多平台小程序的差异性,提供代码解析和转译能力,对微信小程序代码进行转换及抹平。编译后的产出无代码侵入,且可读可写,同时支持用户二次迭代开发(互转工具仅支持对微信原生小程序转换,不支持对框架开发的小程序转换)。

    wx2在自定义组件的支持上也足够完善,包括对relations、selectComponent的支持。互转工具的原理是在于匹配各个小程序的diff,通过固定的规则去对文件进行转换;程序执行的方式相对于人工修改来说,覆盖率和正确率都会高很多。

    wx2以文件为转换单位,它不仅支持整个微信小程序的转换,同时也支持部分微信小程序文件的转换。对于微信小程序中一些系统独有的API能力无法等价转换,wx2也进行了公共降级提示,用户也可以在转换后手动进行逻辑处理。

    具体文档可参见:https://pan.baidu.com/union/wx2/home#/

    更确切的说,wx2的定位是一个静态编译型工具,准确的说是源码到源码的一个转换器,而不是一个框架。
    在这里插入图片描述
    提升小程序迭代的整体开发效率90%+,单个小程序开发时间缩短80%

    小程序测试覆盖率达到90%+,有效降低小程序bug率

    接入成本低,提供详细转换日志方便排查
    在这里插入图片描述
    wx2可以通过以下两种方式安装使用:

    方式1:通过npm安装,命令行执行wx2

    安装:npm install wx2 -g

    使用:wx2 当前的微信小程序文件夹 待生成的百度小程序文件夹 -t

    详细安装方法请参见GitHub的README文档中的快速开始。

    方式2:通过百度开发者工具中的搬家功能直接转换

    1)如图,进入搬家工具,在开发者工具中点击“搬家”:

    https://smartprogram.baidu.com/docs/develop/tutorial/move/在这里插入图片描述
    2)进入搬家工具后,填入项目名称、微信小程序目录,appId,以及要生成的百度小程序目录,最后点击开始转换
    在这里插入图片描述在这里插入图片描述
    wx2目前主要完成了对微信小程序转百度小程序的支持,后续将会完成对转换其他主流小程序的完善,接下来我们将会侧重于工具的转换性能以及稳定性,为更多微信小程序开发者一键迁移到百度小程序贡献一份力量,并为小程序生态建设做出更大的贡献。
    在这里插入图片描述
    项目开源地址

    【Github地址】:https://github.com/baidu/wx2

    【Gitee地址】:https://gitee.com/baidu/wx2

    如果您有任何意见或问题都可以提issue到Github或Gitee,我们将及时为您解答。

    期待你的加入

    百度开发者中心已开启征稿模式,欢迎开发者登录developer.baidu.com进行投稿,优质文章将获得丰厚奖励和推广资源。
    在这里插入图片描述

    展开全文
  • LabVIEW入门第一天

    千次阅读 多人点赞 2020-02-19 22:17:27
    LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。 二,LabVIEW平台详细介绍 与 C 和BASIC 一样,LabVIEW也是通用的编程系统,有一个...
  • 自动驾驶概述

    万次阅读 2020-02-08 20:27:27
    汽车是当今社会的主要交通工具之一,自动驾驶汽车是目前可以看到,并能通过技术手段可以实现的汽车现阶段终极目标。 自动驾驶是分阶段实现的,目前处于初级阶段,就是车本身的各种驾驶辅助系统以及自动驾驶的进化和...
  • IDEA安装教程(多图预警)

    万次阅读 多人点赞 2019-10-22 20:33:36
    IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是...
  • IDEA下载以及配置(最全)

    万次阅读 多人点赞 2019-09-17 08:25:36
    IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。...
  • python开发最受欢迎的十款工具

    千次阅读 2017-06-16 16:23:00
    python开发最受欢迎的十款工具dreamyla3个月前今天编给正在学习python开发的朋友介绍十款最受欢迎的开发工具,因为在学习python开发过程中少不了IDE或者代码编辑器,想要提高开发速度和效率,一款好的开发工具是...
  • 研究生工程伦理课程答案整理

    万次阅读 多人点赞 2019-12-17 09:55:12
    2.单选(1/1分) 工程的内在价值在于为我们提供实现各种目的的工具、手段等,以及提高行动的效率,-般它具有_ 道德性 ●非道德性 善恶性 伦理性 正确答案: 非道德性 3.单选(1/1分) 近些年来,企业管理领域扩展了...
  • 前言 本章讲解IntelliJ ...IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能...
  • 测试开发需要学习的知识结构

    万次阅读 多人点赞 2018-04-12 10:40:58
    并负责产品线特色化的测试框架和测试工具,运用技术手段提升代码交付的质量和效率 -参与互联网产品整个工程生产、发布过程中的技术创新,包括研发敏捷研发工具、线上监控系统、性能测试和监督工具等精确评估线上系统...
  • 工具价值 主观价值 内在价值 生命价值 影响水利工程风险客观公正评估的因素包括 行政因素 水文及地质条件的不确定性 公众参与程度 具体工程实践中对风险问题的不同解读 单选 ...
  • idea

    千次阅读 2018-10-05 14:01:54
    IDEA,全称 IntelliJ IDEA,是 Java 语言的集成开发环境,IDEA 在业界被公认为是 最好的 java 开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE 支持、Ant、JUnit、CVS 整合、代码审查、创新...
  • Idea安装教程

    千次阅读 2018-07-14 10:50:16
    IntelliJ IDEA2017使用教程请点击:Idea使用教程IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本...
  • 微信程序开发【前端+后端(java)】

    万次阅读 多人点赞 2018-07-13 22:19:46
    现在微信程序越来越火了,相信不少人都通过各种途径学习过微信程序或者尝试开发,作者就是曾经由于兴趣了解开发过微信程序,最终自己的毕业设计也是开发一个微信程序。所以现在用这篇博客记录我之前开发的...
  • VisualStudio 2019 新特性

    千次阅读 2019-10-31 08:46:27
    很多伙伴都好奇 VisualStudio 2019 有哪些功能,下面让我介绍一些好玩的特性
  • web开发基本常用语言?

    千次阅读 2018-12-29 19:34:47
    做Web开发,Web框架一定要熟悉,框架是Web架构开发中必不可少的工具,不仅可以提高开发效率,还能让开发项目更成熟,并且可以提升代码的可再用性,Web框架开发离不开相应的开发语言,以下是常用的Web架构开发语言: ...
  • 精益创新的本质

    千次阅读 2020-07-13 21:18:24
    为了顺应移动设备走热的市场趋势,微软推出了创新型的Windows8操作系统,将PC与平板电脑合二为一。然而这样的大胆创新在面向市场时,却广遭用户诟病。通常来说,创新项目的失败大致有两种,一种是因缺乏客户而失败,...
  • 项 目 名 称: AI云学习 —— 一款基于Spark构建知识图谱的人工智能学习工具 项 目 类 型: “互联网+”信息技术服务业 项 目 负责人: 文华 高     校: 合肥工业大学(宣城校区) 院     系: ...
  • 什么是工具变量?

    千次阅读 2020-11-01 20:07:02
    工具变量本身是一个计量经济学的概念,它的出现是为了克服普通最小二乘法中的内生性问题。在这里,内生性是指回归模型中的解释变量(X)和随机扰动项(δ)相关。 如果内生性存在,便会大大降低回归模型的估计...
  • “半面创新”课程体会半面创新这门课给我的启发很大。除了周宏桥老师说他的这本《半面创新创新的可计算学说》一书可以传世500年之外。我更加隐约体会到的一点是:创新,极有可能存在一个大道至简的...
  • 网络安全渗透高级工具(黑客工具软件大全100套)

    万次阅读 多人点赞 2019-05-25 00:33:55
    黑客工具软件大全100套 1 Nessus:最好的UNIX漏洞扫描工具 Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA-acceptance...
  • 尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。 什么是集成开发环境? 集成开发环境,Integrated Development Environment,...
  • 电信运营商创新工具箱 控制扰动的经济模型和重塑电信运营商 10种经济工具用于了解OTT竞争,作出正确的创新投资,避免重大失误。 关键提要 电信运营商被干扰,是因为移动领域的竞争基础已经改变,从
  • 创新者的基因》读书笔记

    千次阅读 2015-06-09 16:21:30
    创新者的基因   创新者的“基因”,即最具创意的企业家具备的五种“发现技能”:联想,观察,实验,发问,建立人脉。   第一部分破坏性创新,从你开始 第一章破坏性创新者的基因 如何获得启示: 发现以下的...
  • java 开发工具及其他使用工具介绍

    千次阅读 2017-09-05 10:10:57
    Spectrum是一款能轻松创建出漂亮的配色方案的实用小工具。 Spectrum是受色彩学原理的启发,可轻松、直观地创造出美丽的色彩方案。 Photo Theater Image Design Photo Theater Pro是一款强大的高清照片...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 179,581
精华内容 71,832
关键字:

创新小工具