• python 接口自动化 request get请求 json内容转换为python字典


    一、如果运行时,提示ModuleNotFoundError: No module named 'requests'

    解决方法:

    1、一定要切到Python3的主目录下安装requests。

    2、如果提示已经安装,那原因是安装的路径不正确,需要先卸载。找到现在的安装目录(会提示),在CMD窗口切过去,执行:
     pip3 uninstall requests
    3、然后再重新安装 pip3 install requests
    4、再切到文件目录 ,执行import request,则OK.
     

    二、序列化和反序列化可以认为是将json和python的dict互转

    * 序列化: python dict -> json
    * 反序列化: json -> python dict

    ## json与dict互转实例


    import json
    # 序列化
    d = {'k': 'v'}
    j = json.dumps(d)

    # 反序列化
    print json.loads(j)

    三、实例

    import unittest
    import json
    import requests

    class JenkinGetCase(unittest.TestCase):

    def setUp(self):
    self.r = requests.get('http://localhost:8080/jenkins/api/json?tree=jobs[name]')

    def tearDown(self):
    print ('the end')

    def test_get_all_job_names(self):
    result = self.r.text
    #获得回报,就是请求返回的json内容
    json_result = json.loads(result)
    print (json_result)

    self.assertEqual(json_result['jobs'][0]['name'],'appium_test')
    self.assertEqual(json_result['jobs'][-1]['name'],'end_test')

    def test_get_all_job_names_samples(self):
    json_result = self.r.json() #简单版的,直接将取到的json反序列化为python的字典,无需要再转换
    self.assertEqual(json_result['jobs'][0]['name'],'appium_test')
    self.assertEqual(json_result['jobs'][-1]['name'],'end_test')


    if __name__ == '__main':
    unittest.main()

     

     四、如果开启了鉴权,那么如何获取get接口
    在开头里增加语句:from requests.auth import HTTPBasicAuth
    另外,修改此句:即增加了auth的用户名与密码

    self.r = requests.get('http://localhost:8080/jenkins/api/json?tree=jobs[name]',auth=('admin','admin')

  • 相关阅读:
    3553: [Shoi2014]三叉神经树(树链剖分)
    Hive学习笔记(三)-- DML和DDL操作
    Hive学习笔记(二)
    Hive学习笔记(一)
    Hive安装步骤
    【Netty】NIO框架Netty入门
    【Netty】Netty入门之WebSocket小例子
    记录一次面试
    线程池面试
    反射面试
  • 原文地址:https://www.cnblogs.com/bzdmz/p/10612276.html
Copyright © 2020-2023  润新知