• TesterHome 论坛图片上传 BUG at 2018年12月11日

    这就是 markdown 的图片格式啊,点预览就可以看到实际的图片效果

  • Python3 解析复杂结构的 json at 2018年12月11日
    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 自动化灵活一点。

  • Python3 解析复杂结构的 json at 2018年12月11日

    这么多层 if 和 for 嵌套……

  • 为何不直接提需求在后台增加一个定时导单的功能呢? 这比使用 selenium 来操作简单很多吧

  • 一般是指 bug 是在哪个环境发现的, 如果是在测试环境测试时发现的,就填测试环境

  • 确实是, 连上 wifi 之后再打开就正常了

  • 微信翻译内容错误 at 2018年12月10日

    优秀

  • 微信翻译内容错误 at 2018年12月09日

    难道 eight 是被屏蔽了?

  • 数据表不存在,看下 init.sql 的数据是否已经导入到你的数据库里面。

  • 数据表不存在,看下 init.sql 的数据是否已经导入到你的数据库里面

  • run - edit configurations 看下配置的是不是不同版本的 python:

  • 建议论坛管理员介入:
    刷赞行为到底存不存在?

    如果存在,除了从开源列表下架,是否有其他处理手段和说明? 否则受误导从论坛引流过去的人员如果受到损失怎么办?

    如果不存在,那么下架是否合理?

  • 我也没有说不支持付费培训。 我是不同意你的这个观点:“你上过了喷才有意义。”

    如果一个专业相关论坛里的其中一群专业人士都觉得某件事不靠谱,难道要亲自去交钱体验过才有资格质疑吗?

  • 我觉得在那个贴子里对这种培训收费方式的质疑,也是基于身为论坛的一份子去做的。
    比如 P2P 、 各种币好不好、能不能信? 如果自己作为从业人员,可以给自己身边的人做个提醒,也是很正常的; 总不能说只有买过这个币、上过当了,才能质疑吧?

  • 例如这样:

    import json
    
    content = '{"message":"成功","id":123,"code":200}'
    content = json.loads(content)
    print(content['message'])
    
  • 你的数据格式检查一下是否有问题,单引号和双引号混用可以吗?

  • 如果一个合理的价格,可以帮助一批人的某些工作技能得到迅速提高, 对行业来说还是好事;
    不过就这个项目而言, 封装 selenium 来执行测试、使用 Excel 来管理用例,感觉已有很多不逊于此的开源方案吧? 值不值得花这个钱来学呢? 见仁见智吧,我反正是不会建议去学。

  • 把 str 转换为 json 对象就可以了

  • 好奇你们的 PO 对象是怎么管理? 数据库里保存,还是代码编写?

  • 之前也做过一次 docker 搭建 mysql ,整理了相关的问题,可以参考下:
    https://testerhome.com/topics/16772

  • 如果是一个产品,应该要积累一个比较完整的用例库,然后分不同的等级。
    如果是大版本的升级,建议要做一次全量的回归测试; 如果是影响范围可预计的小版本,可以针对性地挑选对应模块用例,加上其他模块高等级的用例结合进行回归测试。

    按我理解,如果你们只有通用的基本功能用例, 在全量回归测试的时候肯定覆盖面是不够的。

  • 问一个关于 unittest 的问题 at 2018年11月20日

    学习了,还是这个方法最简单

  • 问一个关于 unittest 的问题 at 2018年11月20日

    可以设置一个全局变量:

    import unittest
    
    COUNT = 0
    
    class TestPara(unittest.TestCase):
    
        def setUp(self):
            pass
    
        def tearDown(self):
            pass
    
        def test_01(self):
            global COUNT
            COUNT += 2
            print(COUNT)
    
        def test_02(self):
            global COUNT
            COUNT += 2
            print(COUNT)
    
        def test_03(self):
            global COUNT
            COUNT += 2
            print(COUNT)
    
    
    if __name__ == '__main__':
        unittest.main()
    

    分别输出: 2,4,6

  • 上面有群号