你的 App 有这个功能吗? Appium 这个层面做不到隐藏,可以滚动一下再点
在这里找
如果原来也是格式化的数据,应该也很容易转成 json
404 NotFound 20170801
转成 {"code": "404", "descript": "NotFound", "date": "20170801"}
不过不幸的团队各有各的不幸
Rails 的话,迁徙代码:
change_column_null(:users, :nickname, false, 'nickname')
把 users 表的 nickname 列设置为不可为 Null,如果有行 nickname 为 Null ,则把它设为 'nickname'
这算是 Rails 提供的 “最佳实践” 吧
如果有两个团队开发了两个应用,都在直接读写数据库使用 nickname 这一列,历史数据中有 nickname 为 Null 。
一个团队需要 nickname 不为 Null ,已经开发完成准备上线,另一个团队一个月后才能开发这个变更。
为了这一个月,第一个团队需要在应用代码中处理两种情况……
这个坑其实在 “两个应用都直接读写数据库” 的时候就挖好了。
如果还不能从根源解决,但能做到《持续交付》里说的,每次数据或数据结构变更必须使用在版本控制系统中的 SQL 文件完成。部署测试环境的时候就能知道有变更,对涉及的测试用例用两份数据执行两次。
目的不明确的视角 13 楼方法挺好。
你需要先弄明白你们 App 启动过程中 Activity 出现顺序
adb logcat -b events | findstr yourAppPackageName
以前用虚拟机是利用快照和镜像。之后数据库在 Docker 容器里,准备好数据之后 ``
执行
# 准备数据
docker commit api-test init:1
# 执行测试
docker run --name api-test init:1
begin api-test
# 执行测试
docker run --name api-test init:1
begin api-test
# 追加测试数据
docker commit api-test init:2
# 执行测试
docker run --name api-test init:2
begin api-test
Mock 自己也写过、也用过现有工具、也用过在线服务。
一个技术方案是在很多因素影响下产生的:组织结构、要达到的效果、人员技术能力、硬件资源、投入时间……
那接口测试时需要组合的就有 0、10、9、-1、” 0”、11、””、null 等接口测试用例组合
比如 Google 地图 API 这种在互联网上公开的接口,能做到这些算合格。一个内部管理系统能做到就很优秀了。
我见识少,接触过的公司,能做到一个接口有一条正向用例的就很少了。
用 TestNG 的话,就是写 JAVA 咯,用 JDBC 写 SQL 或者 ORM 框架也行,比用 Shell 好一些吧。
不过需要在 Host 切换、token 、数据恢复上花很多心思,说明在环境治理上还很原始。这些问题会影响交付过程中的方方面面,并不是接口测试时才会面临的问题。
见过最好的项目,没有数据恢复的说法,因为每次测试执行都在新环境上。测试代码里也不需要准备数据,因为维护了有一个包含测试数据的镜像。测试环境包含了三方服务(包括单点登录)的 Mock 服务,所以测试代码里也不需要这些东西。
有事不能去了,转一张票
已转
已领取
这里可以使用 “参数化构建过程” 中添加的参数。
不过会什么要在一个项目里使用不同分支?
你知道这两个的区别吗
.//*[@text='toast']
.//*[contains(@text, "toast")]
没去试带图片的,查找的时候不需要文本完全一致,.//*[contains(@text, "toast")]
公司支付薪水,你付出时间。
每次碰到这种情况,把浪费的时间记下来,如果有其他人一块记录就更好了。看看一个月有多少。
@seveniruby @Lihuazhang 17 和 20 都是 “手机为什么那么烫揭秘”
在微信里一直是 “正在跳转”
iOS 10.3.3
微信 6.5.8
点 “阅读原文”,是打开这个链接吗? https://proxy.testerhome.com:8000/
无效的证书
错误码 107 (net::ERR_SSL_PROTOCOL_ERROR)
1、无固定发布周期
近几年发现,仅仅做测试执行,学习测试技术运用,远远没有推动整个团队的测试质量提升更有成就感。
刚入行的时候看了不少测试的、软件工程之类的书。觉得在目前软件开发水平分工和垂直分工这么多的情况下,一个基础扎实的新人,在没有过多帮助的情况下,一天之内搭建一个自用的环境,并且可以信任它的表现和生产环境一致性很高,应该是基础的要求吧。现在觉得现实真是无情。
“欸,好像是个 bug 。”
不对,前置项刚被别人改了。
换一条……还不对,这条历史数据有问题,大概有人直接改数据库个改错了。
算了,从头造……还不对,这里调用方是写死的,只能固定的 id 才有效
那就用固定的……“喂,A 君,这个 id 我正在用你怎么改了。”“一会就好,稍等稍等 “
固定 id 也不对,总该是 bug 了吧……“我们组用另一个 IP ,你绑错 host 了” “但是依赖功能要用另一个呀”“那我不知道,你想想办法吧”
折腾半天,终于想办法绕过了,还不对……“哦,依赖服务的测试环境被他们改坏了,还没修,你试试用生产吧”
好,试就试……“哎呀不行,这里有加密、测试和生产密钥不一样”“那做个挡板?”“行啊、你问运维开权限吧”
“不能用 szrz 传文件呀?”“不能,用 FTP”“FTP 每次传都要输密码呀”“是的”
还不对,欸怎么数据没变, 怎么 500 错误了……哦刚有人在发布
还不对,大概是 bug 吧,提到系统里。“过来看看啊,我本地复现不了啊”……看了半天之后 “你本地配置文件多久没更新了啊,和线上差太多了啊”
“你用的参数不对呀”“是 B 君给我的参数表”“哦,测试环境没用那个,给你另一份,用这个算”
还不对,大概可能也许是 bug 个吧?
“嗯,是 bug ,这个问题我昨天发现已经改了,你重新发布下测试环境就好了”
“@#%!#@%¥¥#”
从看的文章和听的演讲理解,目的是对生产环境产生压力并观测数据,为了不对真实用户产生影响,有一些关键问题要处理:
至于其他方面,没看出有什么区别。如果没有技术债等原因产生的部署困难,部门隔离等组织原因。对测试环境产生压力也是要尽量实现 “全链路” 什么的。如果理解的对,大概是是 “全链路压测” 这个名字起得不好。
用 Export Charls Root Certificate and Private Key
导出 .pem
格式的证书再传输到手机上安装
了解设计、标准,看 RFC 。实际实现时,怎么做的都有。
很多不同是因为服务端和浏览器的实现,并不一定符合 RFC ,服务端框架和浏览器对 HTTP 的实现也是随着版本更迭在变化。
对第三方支付进行整体 mock
这样也绕不过加密解密呀?
“服务器不稳定” 太暧昧,需要继续问 “为什么”
关键是,整个系统的设计里,前端怎么判断抢红包的过程结束了呢?
如果是这种轮询设计:
1、前端:“现在第一名是谁?” 后端:“是甲。”
2、前端:“现在第一名是谁?” 后端:“是乙。”
3、前端:“现在第一名是谁?” 后端:“抢完了别问了。”
服务器在并发压力大的情况下,漏了第 2 步的响应——网络不好,服务端出错,都会产生这个 bug 。
排查后得到的 bug 根因就不是性能问题,而是设计问题。
1、前端:“现在第一名是谁?” 后端:“是甲,没抢完。”
2、前端:“现在第一名是谁?” 后端:“是乙,没抢完。”
3、前端:“现在第一名是谁?” 后端:“是丙,抢完了。”