开发选择红框这个无法打包安装,只能编译
具体是怎么无法打包安装,有具体截图或者错误信息之类的吗?
能编译通过,应该就能安装。你用 run test 这样的方式运行,就会自动装上了。装上的标志是手机里面会有一个 WebDriverAgent 的应用,图标类似下图这样:
很赞呀,加个精让更多有需要在 windows 下跑 ios 自动化的同学看到。从评论看,appium 版本是有一定要求的,建议正文里强调一下这个点?
@codeskyblue tidevice 的 readme 里可以考虑加上这个,引导有需要的同学过来这里了解详细步骤?
个人理解,应该是指那些有自己 toC 的基于互联网的产品的公司把。比如 BAT、美团这类。
互联网公司比较大的特点是迭代快、时间紧(需要紧急占领市场的项目直接 007 也是会有的)。要做什么功能主要由产品基于运营及用户反馈来设定需求。技术体系基本是客户端(app/h5/小程序)+ 服务端(java 居多)。
质量上的挑战主要是,在被压缩的测试时间内(是的,被压缩,有的项目会直接按上线时间倒排),怎么把控好风险,保障质量。确保可以按时上线同时不至于出现严重影响用户使用的问题。
可以社区里搜一些性能测试相关文章看看。
性能测试比较花多杂乱,建议自己不断实践不断学习吧。
说下我的理解
# 数组是引用类型,所以把[1,2,3]的内存地址引用赋值给info这个变量
info = [1,2,3]
# 把4个info的内存地址引用,赋值到数组里,然后整个数组的内存地址引用赋值给 userinfo
userinfo =[info,info,info,info]
# 因为是地址引用,所以 userinfo[2] 实际上对应的是 info 的内存地址,所以 userinfo[2] 等价于 info (其实 userinfo[0]、userinfo[1] 也是一样的,可以用 id(userinfo[0]) 查看对应的内存地址进行比较),这里改了 info 里面第一个元素的值为 "aaa"
userinfo[2][0]="aaa"
# 最终结果:['aaa', 2, 3] [['aaa', 2, 3], ['aaa', 2, 3], ['aaa', 2, 3], ['aaa', 2, 3]]
print(info,userinfo)
倒是第一道题掉坑里了,最后的 userinfo 里面没有 'aaaaa' ,因为里面存储的还是原来 info 传的数组内存地址
看懂了,讲的应该是基本类型和引用类型,以及两种类型在赋值的时候值是怎么传递的。
提几个和我理解不大一样的点:
1、定时器(Synchronizing Timer),这个应该是集合点吧,目的是模拟瞬间高压力的场景(几毫秒内直接指定数量的请求过来,造成短暂高压力)。定时器对应英文是 timer ,有好几种不同的定时器的,统一叫定时器好像不大好
2、ForEache
、Contrlooer
两个好像都拼写错误了?。
3、头管理器 不知道你具体指的是哪个?有 http header manager 和 http cookie manager ,你的描述像是 http cookie manager ,但直译的话头管理器应该是 http header manager 。
所以让她自己亲身体验一遍,就知道自己认知差异了。
表里查出来的结果不一定是接口反映的结果
这个认同,确实会有这种情况。不过确实有的业务操作后存储的数据不会有对应查询接口的,这类数据可能通过其他手段和其他系统交互(比如直接过来取数/通过 MQ 之类的直接发消息)。还是具体情况具体分析吧,上升到 “原则” 感觉有点过了。
多个接口比例,个人理解本质上是根据业务场景确定的。
已上线:可以基于线上数据获取,比如流量录制,或者通过日志来分析。而且要注意想办法多拿几次数据,确定要有哪几种场景。
未上线:找项目相关的开发、产品、运营一起评估下用户最常用的场景,分析场景里接口调用情况,然后把它作为一个大致的基准。
虽然有点卖广告,但还是推荐看看高楼老师极客时间的《性能测试实战 30 讲》,里面 13、14 讲就是特别讲这块的,个人觉得也是相对科学的方法。
直接给点测试任务她,让她体验下做测试有什么要求呗?
楼主加油,坚持就是胜利。
PS:没看懂这题目是在干嘛?array 和 dictionary 的基本使用?
这个感觉是中年焦虑?只是相比其他人还要焦虑还房贷啥的,楼主这方面经济压力应该暂时没有。
还没到这个年龄,但也有思考过这个方面的东西,说点个人的观点吧:
1、年龄相对较大,外面找工作找一线技术一般会比较难(当然你能力强有人脉另说哈)。不知道楼主对管理或者向更高岗位发展兴趣如何?可能身边看到这个年龄继续上升的基本都是往更高岗位上升居多。而且往高走也更容易成为业务的核心。
2、其他爱好这个,建议可以先尝试下业余去钻研,真的能静下心来继续钻研再考虑转为职业。很多时候爱好只是业余接触会觉得很有趣,但一旦变成职业 1 天 8 小时面对,很快就会觉得枯燥然后没有兴趣了。
3、个人不觉得有什么 “终身职业”,如果有,保持学习的学生算是职业么?技术发展这么迅速,新行业兴起和老行业没落其实十年就很大变化了。算 65 岁退休,职业生涯有 40 年左右,运气好可以不换赛道走到最后,运气不好可能还得换 1-2 次赛道,与其想着选定后做终生,还不如保持好自己的学习能力,真到了要换赛道的时候可以更快速察觉和切换。
好吧,我文字没写好,用一样的扫描工具,就是你正文说的【绿盟、启明星辰】再扫一次。
这个原则个人持保留意见,要看具体业务。不见得每个操作都会有对应的查询接口暴露,查数据库是最直接的手段。
至于多环境权限这个,不见得每个用例都要每个环境都跑吧,线上跑的用例我们一般都是筛选过,不会做增删改的才会放上去。
查询类用这个思路是没啥问题的,但人工维护成本会比较高,建议补充一些自动录制生成 yaml 的功能,否则成本略高。
用 appium desktop 定位,回显的是调 driver.find_elements_by_ios_uiautomation 方式
不知道你这里回显具体是什么,给个截图?
看你的 api 像是 python 语言的,找到官方 python client 自带的测试里有用 ios_class_chain 定位的,可以试试?怎么跑起来可以参照 https://github.com/appium/python-client
用 ios_class_chain 定位的示例
https://github.com/appium/python-client/blob/master/test/functional/ios/search_context/find_by_ios_class_chain_tests.py
截图日志里 connect ECONNREFUSED 127.0.0.1:8002
就是错误原因了吧。看起来这个端口应该是 XCTestWD 提供的。
确认下你单独启动 XCTestWD 能不能成功?
建议也参照官方安装文档,安装 macaca 和用 doctor 检查下安装是否正常
https://macacajs.github.io/app-inspector/guide/install.html#requirements
yml 里怎么定义返回的内容是 json 格式还是 pb 格式,可以给个示例吗?
正文里的复杂例子没看出哪个配置对应这个点。
用 easy mock 搜索,会搜到好几个。
之前公司里有用过这个: https://github.com/easy-mock/easy-mock ,多人协作很方便,也支持 mockjs 自定义 mock 逻辑。至于命令行的以前用的 moco ,也不错。现在搞前端,直接用了 mockjs 内置到前端里面,有需要起独立服务的话加个 express 或者 koa 之类的也可以。
pb 自动转 yml 的,想了解下,转成的 yml ,实际返回 mock 数据的时候还是用 pb 二进制格式返回的吗?给的示例里没看出怎么区分用 pb 格式还是 json 格式,有点疑问。
从用例角度,是否要判断里面数据对不对是要根据被测服务逻辑决定的。但从框架角度,这个功能有比没有好。
可以先看下用平台的项目一般接口返回要验证什么,然后再决定这个功能是不是一开始就需要具备,需要具备到什么程度?(最简单可以直接一个是否包含特定字符串,写到 excel 里最后一列就行了;复杂的可以做到允许自定义函数进行断言)
个人感觉,json 和 yaml 差不多。
yaml 好处是不用管括号匹配,但容易踩缩进符号不对导致匹配层级错误的坑,要用合适的编辑器。
如果是比较多人协作的话,可以考虑直接用数据库,也方便后续直接平台化。
并不会呀。
假设上面这道题,确认是客户端问题,要细究客户端可能什么问题,个人能想到的:
1、按钮没有绑定事件,所以点击后其实没有触发任何逻辑
2、按钮绑定了事件,但事件执行出错抛异常,所以没有触发任何逻辑。为啥抛异常又可以说很多原因了,不同浏览器支持的 js api 差异、本身逻辑不够严谨等。
3、按钮绑定了事件,事件也执行了网络请求,但没有设定请求成功的回调函数,请求了个寂寞
4、按钮绑定了事件,事件也执行了网络请求,网络请求也有回调函数,但回调函数出错或者没有触发界面元素变化,所以看不出有变化
...
如果是 app ,那可能比 h5 又要复杂不少,中间可能会用到好几个组件。而且很多时候相比服务端,客户端问题用户感知更明显,app 类的修复成本也更高,所以反而质量要求会更高。只是现在客户端性能一般没有服务端好,所以大多架构上倾向于把复杂逻辑集中在服务端,而这个题关注点也在逻辑。客户端更常见的界面兼容展示类问题这个题里没涉及。
之前看过某个极客时间的专栏,里面的大佬有提到,长期发展来说,服务端会逐步倾向于稳定,主要提供相对通用的存储共享服务,比如 GraphQL 这种模式。而客户端会倾向于多样化,内置大部分业务逻辑。
感觉这类问题,一般面试官比较喜欢的答案可能是你在原来平台由于平台限制没法得到更大的挑战或者提高技术深度,所以想来鹅厂接触千万日活级别的大型项目,迎接更大的挑战,得到更大的提升。这样可以体现你的进取心,体现你原来有一定的底子。
用 学习大厂先进的技术以及测试理论 这个说法,有可能会被面试官理解为你水平不高,需要团队花精力去教,培养成本高。社招大部分情况下希望找的是能立马干活的,水平至少达到团队平均水平以上的,而不是还要慢慢教的。所以 学习
这个词尽量慎用,容易让人感觉你水平不高。
个人理解,非 java 项目就没 jvm 什么事?
jvm 是 java 的虚拟机,所有 java 程序都是在 jvm 里运行的。非 java 程序就没有涉及 jvm 。