面试

Fiddler抓包12-AutoResponder返回本地数据(mock)

亡梦爱人 提交于 2021-02-02 15:47:19
前言 mock可以说是面试必问的话题的,我第一次接触mock的时候也是一脸懵逼。虽然fiddler工具用了很久,里面的打断点,设置自动返回数据功能都用过。 mock说的通俗一点就是模拟返回数据,只是面试官为了装逼,搞的这么专业。模拟返回数据,用fiddler打断点修改返回数据和设置AutoResponder都能实现 AutoResponder 使用AutoResponder,修改返回的数据并保存,让接口返回修改后的数据 访问在线地址: https://www.cnblogs.com/yoyoketang/ 使用fiddler抓包 从会话框找到抓到的数据,拽到AutoResponder页面 右键编辑返回的内容 点开raw,修改返回的body内容,修改完成后点save保存 接下来勾选Enable rules 和勾选需要设置的接口,重新打开浏览器就可以看到内容被修改了 勾选Enable rules的同时,最好也同时勾上Unmatched requests passthrougth,这个选项是不匹配的全部放行 Add Rule 如果我们想让请求一个接口地址的时候,返回json数据,在这里添加Add Rule也是可以实现的 点开Rule Editor 第二个输入框,选最后一项“Find a file”, 找到本地json文件后右下角Save保存 json文件内容如下 {"error_code

认真聊聊写博客这件事

风格不统一 提交于 2021-02-02 15:46:31
锻炼沟通表达能力 结交新朋友、面试、晋升、与 Leader 汇报工作、撩妹、哄老婆。。。沟通表达能力与我们的生活是息息相关的。 而写博客可以锻炼这一能力,从排版、主标题、副标题、引用、段落、代码块到每一个词语,如何设计文章整体的结构是需要反复推敲的。把复杂的技术用通俗易懂的语言讲明白,哪怕你的技术只有60分,加上能够很好的表达出来,已经超越很多人了。因为很多人懂一个技术,并不代表他们能够 100% 的输出出来。 那么,输出就需要我们有逻辑性的表达,也能让人感受到你是个逻辑性思维能力很强的人,编程能力自然差不了。在我工作这几年里,也面试过不少的工程师,很少有应试者能从发展历史、产生原因、适用场景、优势劣势。。。等将一个 API 或是某种技术全面的表达出来。不止如此,还要在此基础上举一反三,面试官问1,先回答1, 再延展出与其相关的2,3甚至更多,这样也可以展示出自己的技术深度以及积极性。 积极性这个东西很重要。 站在面试官及企业的角度考虑,如何能在短短的面试过程中考察应试者的工作积极性这确实是个难题。一个聪明的应试者不一定具有对工作的强烈积极性。而一名员工工作是否积极,能做出的贡献是天差地别的。从团队成员的构成角度来看,团队中成员的性格、能力的构成占比对整个项目的影响也是巨大的。眼里时刻有活儿的员工和能摸鱼就摸鱼的员工,如果你是老板,让你来选,你会选哪个?答案不言而喻。

今天不聊技术,聊聊互联网实习这点事

拜拜、爱过 提交于 2021-02-02 14:54:08
从我最近发的实习招聘文章就可以知道,我最近在忙春招的事了,本人也非常“荣幸”,担任了我们团队这次春招的负责人。陆陆续续沟通了很多学生,于是在这个周末抽出了一点时间,跟大家聊聊我对校园实习的一些看法。 就在我发完实习招聘的当天下午,一位同学就联系到了我,非常客气地称呼我为“老师”,从申请好友时的备注中得知其是一位名校的学生,希望找一份暑期实习的工作。由于是第一个加我微信的同学,我兴致很高地跟他沟通了番。 说实话,这位同学虽然学历不错,但交流下来,发现在编程实践经验上差了那么一点,但也能理解,毕竟是学生吗,可能还是以学习学校课本上的知识为主。由于我们是中间件岗位,我又继续跟他聊了下中间件,问他对中间件的了解有多少,他说没了解过,但我可以学,说到这儿,我眉头开始一紧,继续追问他,这你也敢投简历?他回答说,阿里一直是我梦寐以求的公司。一时语塞,让我联想到了当初面试阿里时的自己,貌似也说过同样的话。最后我草草结束了交流,还是将他的简历投递进了系统。 接触过这些大三/研二找实习的学生之后,我不禁回忆起了自己的经历。我大三的时候都没有意识到要找一份实习,甚至觉得公司招聘实习生,就是在招一些廉价劳动力,去干一些脏活累活。直到应届毕业之后,才了解到原来国内这些大公司,几乎不招聘应届生,要么是 3 年工作经验起步,要么是校招实习转正,几乎没有第三种情况! 很多学生没有实习计划,或者出于对工作的恐惧

互联网大厂数据库面试真题解析

一世执手 提交于 2021-02-02 14:37:06
点击上方蓝色“ 程序员一凡 ”,选择“设为星标” 回复“ 关键词 ”获取整理好的 面试资料 但凡有职场经验的兄弟都知道,大厂的面试真是一言难尽,不光看你面试时的临场发挥能力,还要分N次考你对公司业务核心技术的熟悉度。 你要没有扎实的基本功,想忽悠住面试官可太难了。你去翻翻大厂那些20、30K的岗位就懂了: 关于数据库,我认为是软件测试工程师第一个要学的技术也是最重要的基础。 不仅你做功能测试要用到数据库;接口测试、很多接口的返回值它是动态的,那么你要去数据库拿数据来校验;还有自动化,怎么去做一些数据驱动,都要从数据库里去拿。你做性能测试是不是也和数据库有关。比如慢查询,都和数据库有关。 所以说,你要去面试软件测试工程师。数据库这一关你得要有底。 掌握sql查询增删改查、子查询、关联查询、分组查询、分组过滤 1.说一下你常用的sql优化方式?为什么select*效率低? 2.什么是索引?索引为什么能增加查询效率 3.索引是建的越多越好吗? 4.什么是ORM?为什么要用ORM? 5.如何将查询的数据汇总到excel,txt文件?6.关系型数据库和非关系型数据库的区别? 首先如果你要去面试,你得首先保证你掌握了sql的基本查询 增删改查 第一部分:软件测试基础理论、流程还有项目管理 增删改查大家基本都会吧,Select、Delete、Update、还有一个子查询、关联查询、分组查询

你都知道那些Kafka副本机制?

爷,独闯天下 提交于 2021-02-02 14:36:22
前言 在日常开发过程中使用kafka来实限流削峰作用但是往往kafka会存放多份副本来防止数据丢失,那你知道他的机制是什么样的吗?本篇文章就带给大家讲解下。 一、Kafka集群 Kafka 使用 Zookeeper 来维护集群成员 (brokers) 的信息。每个 broker 都有一个唯一标识 broker.id ,用于标识自己在集群中的身份,可以在配置文件 server.properties 中进行配置,或者由程序自动生成。下面是 Kafka brokers 集群自动创建的过程: 每一个 broker 启动的时候,它会在 Zookeeper 的 /brokers/ids 路径下创建一个 临时节点 ,并将自己的 broker.id 写入,从而将自身注册到集群; 当有多个 broker 时,所有 broker 会竞争性地在 Zookeeper 上创建 /controller 节点,由于 Zookeeper 上的节点不会重复,所以必然只会有一个 broker 创建成功,此时该 broker 称为 controller broker。它除了具备其他 broker 的功能外, 还负责管理主题分区及其副本的状态 。 当 broker 出现宕机或者主动退出从而导致其持有的 Zookeeper 会话超时时,会触发注册在 Zookeeper 上的 watcher 事件,此时 Kafka

大厂测试开发面试真题,你需要几分钟解答?

試著忘記壹切 提交于 2021-02-02 13:53:49
临近秋招,又到了“ 金九银十 ”面试求职高峰期,在金三银四时也参与过不少面试,2020都说工作不好找,也是对开发人员的要求变高。前段时间自己有整理了一些软件测试资源大礼包,包括一些面试题和书籍资料,同时也整理一些图文解析及笔记,今天在这免费分享给大家,希望大家在即将的十月面试做好复习,长期的积累和短期的突击让自己能找到一个满意的工作! 互联网软件测试 面试题 企业面试题: 系统编程及网络编程: 自动化测试及性能测试: 测试用例及测试管理: 除了这套 pdf文档 我还为大家准备了一套体系化的软件测试资料包以及 面试资料 ,供大家参考及学习, 文末有免费领取方式 : Jmeter相关: Python相关: 微信扫描下面二维码拿资料啦 我已经把这些面试题和 pdf文档 ,放在我的微信资源群里,群里会提供各种书籍,也有资深HR可以推荐工作,大牛相互交流技术,捣乱和发广告的勿加。 本文分享自微信公众号 - ITester软件测试小栈(ITestingA)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4617935/blog/4512017

Git之rebase、merge和cherry pick的区别详解—面试常问

天涯浪子 提交于 2021-02-02 13:07:24
git flow 镇楼 转载请注明出处: https://www.cnblogs.com/NaughtyCat/p/differ-with-rebase-merge-cherry-pick.html merge 这个简单,初学者常用。比如主分支是Dev,最新版本是01。然后小明基于此,搞了个feature 分支A,业务:打酱油 然后在上面多次提交,完成功能迭代开发,如A1 ---> A2 ---> A3(作者【 CoderBaby 】) Dev 分支 merge A branch,最后Dev 分支的历史log就变成: Dev01 ---> A1 ---> A2 ---> A3 附图如下: rebase 中文翻译过来,变基。这个搞完,提交历史会比较清爽,哈哈 a) merge会有两条提交历史记录线路,有个菱形图(C2, C3, C4, C5间关系) b)rebase只有一条提交历史记录线路图,无菱形图(C2, C3, C4'),并且少了一个提交对不,C4好像不存在 附图如下:                          after merge                          after rebase 官网说明请移步 : https://git-scm.com/book/en/v2/Git-Branching-Rebasing rebase、merge的区别参见

企业是如何解决HDFS单点问题的?

為{幸葍}努か 提交于 2021-02-02 12:40:28
前言 在早期Hadoop刚出来的时候是没有解决HDFS单点问题的,这就意味着当NameNode的服务器宕机了就会导致整个集群瘫痪,这是非常危险的于是在Hadoop不断的更新下提出了Hadoop HA来解决NameNode单点问题,接下来我们就来聊一聊。 解决HDFS单点问题解决方案 解决HDFS点单问题其实可以部署两个NameNode,但是真正对外服务只有一个,部署两个NameNode那他们之间的元数据信息是不是需要共享元数据信息呀,不然当其中一个NameNode挂掉了元数据信息没有同步不就会有问题。 根据appche提出的解决方案目前有三种解决方案如下 方案一、目录共享 目录共享是在appche社区中提出但是现在没有引用,目录共享也是一个单点问题,如果当目录共享挂掉了是不是也会导致HDFS挂掉。所以就被一些企业抛弃了。 方案二、使用JournalNode方案 我们使用JN来保存元数据信息就不会造成单点问题,JN也是一个集群,我们一般部署JN一般会选择基数例如3,5,7,9等。JN有一个政策只要存活的节点大于 二分之一 就是一个正常的服务。 注意: 我们不要为了解决NameNode的单点问题选择的的组件也是单点问题,这个根本还是没有解决。 JN中的信息都是一样的,那为什么也是其中的一个NameNode就是写数据其中一个就是读取数据那? 其实NameNode也是有角色之分的写的为

【刷穿 LeetCode】20. 有效的括号(简单)

梦想的初衷 提交于 2021-02-02 11:50:25
题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 注意空字符串可被认为是有效字符串。 示例 1: 输入: "()" 输出: true 示例 2: 输入: "()[]{}" 输出: true 示例 3: 输入: "(]" 输出: false 示例 4: 输入: "([)]" 输出: false 示例 5: 输入: "{[]}" 输出: true 栈 + 哈希表解法 这是道模拟题,同一类型的括号,一个右括号要对应一个左括号。 不难发现可以直接使用 栈 来解决: class Solution { HashMap<Character, Character> map = new HashMap<Character, Character>(){{ put(']', '['); put('}', '{'); put(')', '('); }}; public boolean isValid(String s) { Deque<Character> d = new ArrayDeque<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(' || c ==

php中session垃圾回收机制

半世苍凉 提交于 2021-02-02 10:50:29
在 PHP 中,没有任何变量指向这个对象时,这个对象就成为垃圾。 PHP 会将其在内存中销毁;这是 PHP 的GC垃圾处理机制,防止内存溢出。 GC的工作就是扫描所有的Session信息,用当前时间减去session最后修改的时间,同 session.gc_maxlifetime 参数进行比较,如果生存时间超过 gc_maxlifetime (默认24分钟),就将该session删除。 当一个有效的请求发生时, PHP 会根据全局变量 session.gc_probability 和 session.gc_divisor 的值,来决定是否启用一个GC, 在默认情况下, session.gc_probability = 1 session.gc_divisor = 100 也就是说有 1% 的可能性启动GC(也就是说100个请求中只有一个gc会伴随100个中的某个请求而启动). 但是,如果你Web服务器有多个站点,多个站点时,GC处理session可能会出现意想不到的结果,原因就是:GC在工作时,并不会区分不同站点的session. 那么这个时候怎么解决呢? 修改 session.save_path ,或使用 session_save_path() 让每个站点的session保存到一个专用目录; 提高GC的启动率,当GC的启动率提高,系统的性能也会相应减低,不推荐;