我没说你啊。 我说的楼主是 maimai 里发帖子的那个楼主
最近有点丧, 一直没管工作之外的事。其实很早之前我就在 maimai 上看到这个职言了,当时我还发群里给恒温他们看。 但我们一直也没管,毕竟人家有发表自己看法的权利。 那现在我来说一下自己的想法吧。
怎么说呢,我一直觉得国人非常容易陷入某种特别极端的观点中,从这个职言中其实可以看出来楼主和部分其他人已经陷入了什么观点都听不进去,只认为自己是对的这种极端情绪中了。 之所以说极端,是因为好多人都觉得社区的大会全部都是落不了地的平台轮子,就没有一个是有用的。 这话明显就太极端了。老实说关于炫技,落地困难的情况有没有?那肯定是有的,要说一点都没有我相信社区自己也不信。 但讲道理,所有议题全是炫技和无法落地的东西。 这话说出来,不觉得莫名其妙么,我也不怕得罪人,有些议题觉得无法落地可能确实是过于偏门了,也确实有讲师为了体现技术含量而过于设计了,但有些时候可能单纯的就是你没听懂这个议题,你不懂的东西当然觉的无法落地。就是我参加议题评审的时候,遇到不属于我所在领域的议题的时候,我一般也都是闭嘴的,这些议题在我看来也没办法落地,但这只是单纯的我不懂,人家 PPT 里讲了一堆视频领域的指标,我以前压根就没听过,这是很正常的事。而且炫技这事有这么不能理解么?咱们出去面试,在公司搞晋升搞分享,哪个不炫点技?搞一些平平无奇的东西面试能成功么?晋升能成功么?大家问问自己,自己去面试和晋升的时候,是不是也得挑技术含量高的说?所以讲师出来分享议题的时候,稍微包装包装,挑一些有技术含量的东西来展示展示自己的能力,这个其实无可厚非。大家还是不要过于双标,严于律人,宽于律己。
关于能不能落地这事其实很主观的,上面我也说过确实有议题和讲师为了炫技搞了一些过于设计的东西。也有些议题很冷门,很小众。 但其实大部分时候,对于我来说,能不能落地的前提在于我是不是已经涉足了这个领域了, 是不是在这个领域里已经积累到一定程度了。 也只有我自己在这方面有很长时间的研究后,我才能分辩出这个议题是不是靠谱,在落地过程中会有什么重点的困难, 这些困难讲师有没有说到。 我在评审议题的时候,遇到我擅长领域的议题都是能看出来讲师是不是在胡扯的,甚至我能判断出来讲师是不是真的做过这块内容,是不是在拿其他人的成果在这里充数。 因为外行人是蒙不了真正在这方面研究过几年的专业人员的。这一次议题评审的时候有个测试 AI 产品的议题,我一上来就说了这个人应该不是专业做 AI 的,他 PPT 里的内容都是拿别人做的东西拼凑出来的,思路非常混乱,而且关键的问题全都被他回避了。 只有拥有这样一些该领域的专业能力以后,很多议题才对我来说是可以落地的。 因为听议题听的是思路,而不是实现方式。如果大会对讲师的要求是在 40 分钟内让 0 基础的人能回去直接落地的程度,那就没讲师能通过审核了,因为那得是神一样的语言精练能力啊。 大家想想,学生时代的时候学个 java 还得一个学期的时间呢, 要是谁能 40 分钟讲一遍就能让学生自己去实践项目了。那培训机构就可以都倒闭了。 很多时候当你有这个能力基础的时候,真的是听一遍思路就知道怎么回事了。 你就可以判断出来这个议题对自己有没有价值, 我回去以后要怎么针对这个思路来定制化我自己的场景。
这么快就来查资料了
暂时没开源哈
我一个一个回答一下:
明年~
好久不见,牛哥现在这么强了
测试
allure report 可以直接启动一个 web 服务而不是静态的 html 文件。 测试用例的执行情况都在 http 的接口里。 可以直接抓。 我们之前的做法是在 jenkins 的 share lib 里写了抓取 allure report 结果的脚本。 然后在 pipeline 里直接调用即可。代码如下:
import groovy.grape.Grape
/**
* Created by sungaofei on 19/3/1.
*/
@Grab(group = 'org.codehaus.groovy.modules.http-builder', module = 'http-builder', version = '0.7')
@Grab(group = 'org.jsoup', module = 'jsoup', version = '1.10.3')
import org.jsoup.Jsoup
import groovyx.net.http.HTTPBuilder
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.*
import groovy.transform.Field
//可以指定maven仓库
//@GrabResolver(name = 'aliyun', root = 'http://maven.aliyun.com/nexus/content/groups/public/')
//加载数据库连接驱动包
//@Grab('mysql:mysql-connector-java:5.1.25')
//@GrabConfig(systemClassLoader=true)
//global variable
@Field jenkinsURL = "http://k8s.testing-studio.com:5003"
@Field int passed
@Field int failed
@Field int skipped
@Field int broken
@Field int unknown
@Field int total
@Field Map<String, Map<String, Integer>> map = new HashMap<>()
@NonCPS
def getResultFromAllure() {
def reportURL = "/job/DailyBuild/${BUILD_NUMBER}/allure/"
// if (env.BRANCH_NAME != "" && env.BRANCH_NAME != null) {
// reportURL = "http://k8s.testing-studio.com:5003/job/Daily%20Build/allure/"
// } else {
// reportURL = "/view/API/job/${JOB_NAME}/${BUILD_NUMBER}/allure/"
// }
// reportURL = "/view/API/job/sage-sdk-test/185/allure/"
println(jenkinsURL+"${reportURL}widgets/summary.json")
HTTPBuilder http = new HTTPBuilder("http://k8s.testing-studio.com:5003")
//根据responsedata中的Content-Type header,调用json解析器处理responsedata
http.get(path: "${reportURL}widgets/summary.json") { resp, json ->
println resp.status
passed = Integer.parseInt((String) json.statistic.passed)
failed = Integer.parseInt((String) json.statistic.failed)
skipped = Integer.parseInt((String) json.statistic.skipped)
broken = Integer.parseInt((String) json.statistic.broken)
unknown = Integer.parseInt((String) json.statistic.unknown)
total = Integer.parseInt((String) json.statistic.total)
}
}
def call() {
getResultFromAllure()
getDatabaseConnection(type: 'GLOBAL') {
// map.each { feature, valueMap ->
// def sqlString = "INSERT INTO func_test (name, build_id, feature, version, total, passed, unknown, skipped, failed, broken, create_time) VALUES ('${JOB_NAME}', '${BUILD_ID}', '${feature}', '${version}', " +
// "${valueMap['total']}, ${valueMap['passed']}, ${valueMap['unknown']}, ${valueMap['skipped']}, ${valueMap['failed']}, ${valueMap['broken']}, NOW())"
// println(sqlString)
//
// sql sql: sqlString
// }
// def lineCov = 0
// def branchCov = 0
// if (coverage != null && coverage != ""){
// lineCov = getLineCov()
// branchCov = getBranchCov() * 100
//
// }
def sqlString = "INSERT INTO func_test_summary (name, build_id, total, passed, unknown, skipped, failed, broken, create_time) VALUES ('${JOB_NAME}', '${BUILD_ID}', " +
"${total}, ${passed}, ${unknown}, ${skipped}, ${failed}, ${broken}, NOW())"
sql sql: sqlString
}
}
测试
问题 1: 可以的, 我的程序就是写个 demo,你可以把自己想参数化的东西都提取出来
问题 2:同问题 1 一样的,把端口号提取成环境变量就好了。
可以的, 就是你得做好心里准备,所有的培训班都是教基础的。 你不能指望他把你培训成高手。
我感觉这个东西比较主观,每个面试官想听的东西不一样。 但是基本上其实都是希望你在描述自己做过的事情的时候, 能说出一些更深入的东西来。我理解面试官其实就是想在一大批候选人中找出一个更好的。 因为大家说的东西都差不多,都是流程什么样子,测试策略什么样子,测试工具用的是哪个,都是大同小异的。 所以本质上面试官是希望你能说出一些跟其他人不一样的东西来。 比如你可以通过一个测试项目中的某些业务特点,或者技术特点, 自己思考其中的规律并扩展出一种新的测试方法。 让面试官知道你的测试行为是经过自己的思考的,而不是大家都做什么什么测试, 你才去做的。 候选人最好是能让面试官认定你是一个自驱能力比较强, 能独立思考并行动的人。
好几年了, 我依稀记得这个是我们 UI 上的一个图标,点击一下就回到桌面了。我们跳转模块的时候需要先点一下回到桌面。这个桌面你理解为首页把
艾玛,我才看见,感谢楼主的整理, 我自己都没这么整理过我发的东西。
大厂病肯定是有的,怎么说呢,我感觉还是比较官僚的。 裁员应该是真的,我们同事也在说裁员的事。
城市 IT 行业不发达的话,不是很乐观啊。 我有个朋友在西安,他也是做测开的。30 多岁,能拿 2.5W 吧我记得。 主要是一些大公司喜欢在西安建立子公司。所以这个城市的 IT 行业就还行。石家庄如果是这样的话,我觉得你要么就转研发,要么就别干 IT 这行了。或者你也去个类似西安,南京,厦门,成都这样的 IT 行业还说的过去的城市。
很明显~~ Switch 是带不动老头环的~~~~ 。 家里有娃的人只能玩 Switch 了
需要掌握大数据开发技能~~ 不用非得是很强的,但起码要知道原理,数据流,能写简单的造数工具等。
java 好一些吧。毕竟互联网的主要语言, 如果你立志在容器这样以 go 语言为主的领域里发展,那再学 go 把
个人意见,仅供参考。 目前的测试行业中,面试中比较有优势,并且容易考量的仍然是技术能力。不是说其他的不重要,而是在面试中其他方面的东西不方便评估,而且从这些年的趋势来看,各个厂商也确实喜欢招聘一些技术比较强的候选人。 并且你毕竟刚实习,未来在哪个业务方向上走还是确定的,未来你会接触到各种业务类型,不着急在某个业务上下太大的功夫。而技术比较通用,即便不能 100% 的迁移到你的新工作中,但是大部分可以迁移过去还是靠谱的。 所以首先建议你挑选一些比较通用,换了一份工作也用的上的技术。 比如:
除了通用的技术,如果你想在某些特别的领域有所建树,想尝试一下看看自己合适不合适。我这里也推荐几个方向:
就说这些吧,我的认知也就是这样的程度了~ 其他方向的东西没接触过实在不敢瞎掰
天下的好老婆都是这样说的
switch 咋加好友啊。我就瞎玩,都没怎么研究,现在就是喜欢玩肉鸽类的或者类银河恶魔城游戏
我记得是什么宝马 3GT 好像,反正不是三系。