chromium 的实现,developer tool 和 chromedriver 应该是使用相同的远程调试操作协议的。如果真是这样,则 chromium 内核一次只能接收一个 client(比如 f12,比如 webdriver client session)来交互。所以,只要能确认这点,基本上,用 python 代码开 f12 就不可能了。
如果我没记错的话,chromedriver 是不支持使用 dev tool 的。因为使用 dev tool 可能干扰 driver 执行时序。可能你要试试其他方法,比如用按键精灵等操作了。
This naming convention informs the test runner about which methods represent tests.
python 自带的 unittest 默认执行以 test 开头的方法
https://docs.python.org/2/library/unittest.html#basic-example
那可能跟你使用和管理 driver 的方式会有一定关系,可以简化代码,缩小模型了,再看看
看样 appium session 挂掉了,排除框架本身,用命令行或者 IDE,能执行多个 case 成功不?
#!/usr/bin/env python
#! coding=utf-8
from __future__ import unicode_literals
如果是 2.x 配合 future 特性会更好一点的。当然,一个合适的编辑器也很重要
而是购买业务逻辑接口串联的测试
非常同意这句话!!
比如通过下订单再查询订单接口,返还商品信息给外部 API,商品跟 ERP 整合等其他接口来验证该接口本身录入数据的正确性了,在接触不到数据源的情况下
rest-assured 的最大优势,就是使用 fluent interface 编写自带 scenario style 的冒烟场景脚本
cucumber,则你就必须显式引入 req, res,在场景步骤中传递了。总感觉会有点变扭的说……
可能用其他框架,拿到响应以后,在 then and other 步骤里去断言响应更合适。(比如 jsoup)
cucumber 如果编写 when then when then 这种,再遇到 rest-assured 就会非常别扭
https://github.com/SeleniumHQ/selenium/issues/4017#issuecomment-302030078
可能跟引用的 webdriver 变更规范有关系,建议降版本组合尝试看是否能稳定。
只要能接触到数据源比如数据库,无论如何都建议直接读取表比对业务后的真实数据的。
否则,需要组合其他接口,间接尝试暴露录入的数据。
看看 ADB 能连上机器不?先排除真机网络连通性,以及开发者调试模式看看呢。
实在不行可以用幂等的模拟器,先排除你测试脚手架的问题(特殊 BUG 版本撞大运的概率也有的)
new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub,cap"));
确定 url 没写错?一般是 (new URL("location string"), capabilityInstance) 的
数据准备的不同策略:
1 走 DB
制约条件:多数据源不适合
数据源不透明,数据源被隔离不适合
规则复杂,数据源数据结构有复杂、动态依赖性不适合
(其他都可以的)
2 走系统入口,比如页面、接口等
制约条件:业务会有依赖性,比如先要搞定商品分类等
至于如何使用数据,就看你是采用物理清除、标记无效的软清除、采用随机数据策略保证互斥等了。看场景吧。
如果使用事务策略,则接口应用本身跟测试程序必须复用同一个数据源事务,而且不能有改变 DDL 的操作,就可以的。
具体情况要看你自己系统的业务哦,比如是否商品管理系统的接口,内部跟库存或者 ERP 系统有关系等等来权衡了。