申请开通
之前在一两个小项目里用过一个框架,就是简单用 Excel 维护关键字驱动的测试用例。
我的使用场景: 在客户现场的一台内网服务器, 简单部署了这个框架,在 Excel 里维护了大约一百多条用例。
为啥不用数据库维护? 因为想做到资源最小化,因为现场的服务器只是一台 win pc,要是只为这个工具安装个数据库就太麻烦了;
用例维护麻烦吗? 因为是小项目,只有自己在用,不存在多人读写 Excel 的问题; 而且 Excel 里复制用例、批量查找替换等功能其实挺方便。
图片上传如果是 input 类型,可以试下 填写文件 方法
弹框的选择看是什么类型,如果是 select 也可以用 选择 方法
估计这些提问的人不会看到这个帖子……
{"method":"name","selector":"//*[@id="content"]/div/div/form/textarea"}
方法是 name , 然后内容是 xpath ? 还是看看你代码吧
driver = webdriver.Chrome()
driver.get('https://www.west.cn/domains/')
driver.maximize_window()
driver.find_element(by='name' ,value='searchedDomainName').send_keys('selenium')
time.sleep(5)
我试了一下,是可以正常输入的。
要不把你的代码贴上来看看吧, 你的 click 定位方式和输入的定位方式都不一样
看下你的语句是不是格式有问题,send keys 里的引号不是半角啊
看来网上传的 HR 过滤简历的规则在你身上不适用啊? 还是外包公司为了在银行里占位置已经完全顾不上这些了?
我就觉得奇怪, 怎么我两篇没加精的帖子也被收录进来了
话说社区精华帖的列表是有 bug 吗? 翻页之后看到一些帖子没有加精标记。 是过滤除了问题,还是加精标记出了问题?
个人觉得持续集成最基本的就是有个触发点,可以定时或外部触发测试。 至于用什么实现方式就看你了
如果后续加上报表和邮件通知之类的功能可能会完善点
赞!
之前做过一个按 key 列表来进行对比的方式, 可以参考一下
这就是 markdown 的图片格式啊,点预览就可以看到实际的图片效果
d1 = [{"id" : 1,"name" : "Number1","age" : 11},{"id" : 2,"name" : "Number2","age" : 22},{"id" : "3","name" : "Number3","age" : 33}]
d2 = {"persons" :[{"id" : 1,"name" : "Number1","age" : 11},{"id" : "2","name" : "Number2","age" : 22},{"id" : 3,"name" : "Number3","age" : 33}]}
d3 = {"code" : 200, "persons" :[{"id" : 1,"name" : "Number1","age" : 11},{"id" : True,"name" : "Number2","age" : 22},{"id" : 3,"name" : "Number3","age" : 33}]}
## 获取 json 数组或json 对象的 key 列表
def get_json_keys(json_str,json_keys = []):
if isinstance(json_str,list):
for json_obj in json_str:
for key in json_obj.keys():
if key not in json_keys:
json_keys.append(key)
elif isinstance(json_str,dict):
for key in json_str.keys():
if key not in json_keys:
json_keys.append(key)
return json_keys
## 将json 数组中相同的 key - value值进行合并
def get_key_values(json_str,json_keys):
target_json = {}
for key in json_keys:
key_values = []
for json_obj in json_str:
if isinstance(json_obj,dict):
key_values.append(json_obj[key])
target_json[key] = key_values
return target_json
## 主方法
def analyse_json(json_str):
target_json = {}
json_keys = []
if isinstance(json_str,list):
json_keys = get_json_keys(json_str,json_keys)
target_json = get_key_values(json_str,json_keys)
elif isinstance(json_str,dict):
json_keys = get_json_keys(json_str,json_keys)
for key in json_keys:
if not isinstance(json_str[key],list) and not isinstance(json_str[key],dict):
target_json[key] = json_str[key]
else:
target_json[key] = analyse_json(json_str[key])
return target_json
print(analyse_json(d1))
print(analyse_json(d2))
print(analyse_json(d3))
输出:
{'id': [1, 2, '3'], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}
{'persons': {'id': [1, '2', 3], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}}
{'code': 200, 'persons': {'id': [1, True, 3], 'name': ['Number1', 'Number2', 'Number3'], 'age': [11, 22, 33]}}
按这样拆分会不会好一点?
明白了。
或者能否看下有没有对应的接口可以直接调用下载? 感觉上会比 ui 自动化灵活一点。
这么多层 if 和 for 嵌套……
为何不直接提需求在后台增加一个定时导单的功能呢? 这比使用 selenium 来操作简单很多吧
一般是指 bug 是在哪个环境发现的, 如果是在测试环境测试时发现的,就填测试环境
确实是, 连上 wifi 之后再打开就正常了
优秀
难道 eight 是被屏蔽了?
数据表不存在,看下 init.sql 的数据是否已经导入到你的数据库里面。