20210224【pytest测试框架实战训练营】最火python 测试框架与接口测试技巧

沙发

板凳

站着看

练习

测试人

测试人

测试练习

新人报道

沙发,测试人

请老师看看课后作业这么做行吗?

@pytest.mark.parametrize("username",['xixi-tech','wangke','li929','yiyiran','jimzhang','wengzi','mistory','Change_TE'])
def test_ceshiren(username):
    result = requests.get("https://ceshiren.com/t/topic/10232.json")
    username = result.json()['details']['participants']
    assert result.json()['details']['participants'] == username

代码要 加上``` 代码 ```` 三个反引号,才是markdown格式。

你这样参数化是没问题的, 但是结果肯定是一直pass 因为你定义了username = result.json()['details']['participants'] 所以肯定一直是通过的, 这个username 应该 取个其它的名字 , 跟参数的名字冲突了。

把名字改了你这样写就不对了。

代码要 加上``` 代码 ```` 三个反引号,这个是什么意思?
我把username = result.json()[‘details’][‘participants’]这句删除是不是就可以了?

我已经帮你改了,看你的代码

对,把那句删了,就会发现代码的问题,这样写逻辑是有问题的

我把那句代码删除了以后就报错了,我打印了一下,一直获取的是同一个username呢?不明白问题在哪儿,求指教

小板凳

你想要拿到你想要的name,首先要分析它的结构,如下图

result['post_stream']['posts'] 这样可以获取到一个列表,因为posts下面有很多数据,可以使用for循环,把name这个字段都拿出来放在列表中 ,然后 再判断,你要找的名字 ,是否在这个列表中。

更简单的用法是使用 jsonpath 会更容易实现。

怎么查看抓取到的网页的json数据结构呢

  • 你是想问如何抓取,还是说抓取到了如何查看?

抓取到了如何查看的话? 就是安装个chrome 在线插件 ,或者使用一个在线解析 json 的工具就可以了。

如何抓取的话,需要使用抓接口的工具,或者在chrome 右键 检查,选择network

测试练习哈哈