zoukankan      html  css  js  c++  java
  • Python 接口测试(五)

    五:使用python进行组织编写接口测试用例

    接口测试其实就是几个步骤。

    1. 拿到接口的url地址
    2. 查看接口是用什么方式发送
    3. 添加请求头,请求体
    4. 发送查看返回结果,校验返回结果是否正确

    明白了接口测试的测试步骤,那么我们就可以来组织我们的代码。

    import requests
    
    # 接口的url
    url = "http://fanyi.baidu.com/v2transapi"
    
    # 接口的参数
    params = {
        "from":"en",
        "to":"zh", 
        "query": "test"
    }
    
    r = requests.request("post", url, params=params)
    
    # 打印返回结果
    print(r.text)
    
    # 为了让结果看的更加清楚一点,我取来翻译的字段
    import json
    d = json.loads(r.text)
    print(d['liju_result']['tag'])

    结果:

    ['试验', '测验', '考验', '化验', '考查', '受试验', '受测验', '受考验', '测得结果']

    (结果很长,截取最后的)

    修改参数再次请求;

    import requests
    
    url = "http://fanyi.baidu.com/v2transapi"
    params = {
        "from":"en",
        "to":"zh",
        "query": "study" #
    }
    r = requests.request("post", url, params=params)
    
    import json
    d = json.loads(r.text)
    print(d['liju_result']['tag'])

    结果:

    ['学习', '研究', '课题', '书房', '结论', '考虑', '沉思', '努力', '想出']

    ps:我们看看利用工具测试该接口

    接下来我们来引入unittest库优化代码:

    import requests,unittest,json
    class Testbaiduapi(unittest.TestCase):
        def setUp(self):
            url = "http://fanyi.baidu.com/v2transapi"
        def testzhen(self):
            params = {
            "from":"en",
            "to":"zh",
            "query": "study" #
        }
            url = "http://fanyi.baidu.com/v2transapi"
            r = requests.request("post", url, params=params)
            r=json.loads(r.text)
            assert  u'学习' in r['liju_result']['tag']
        def testzhen1(self):
            params = {
            "from":"en",
            "to":"h",
            "query": "stud" #
     }
            url = "http://fanyi.baidu.com/v2transapi"
            r = requests.request("post", url, params=params)
            r=json.loads(r.text)
            assert  u'学习' in r['liju_result']['tag']
        def tearDown(self):
            pass
    if __name__=='__main__':
        unittest.main(verbosity=2)

    结果:

    在python中,提供了HTMLTestRunner.py来生成测试报告,把该文件下载后,直接放到python安装文件的lib的目录下,

    就可以导入该模块使用了,见该实现的代码:

    import requests,unittest,json,HTMLTestRunner
    class Testbaiduapi(unittest.TestCase):
        def setUp(self):
            url = "http://fanyi.baidu.com/v2transapi"
        def testzhen(self):
            params = {
            "from":"en",
            "to":"zh",
            "query": "study" #
        }
            url = "http://fanyi.baidu.com/v2transapi"
            r = requests.request("post", url, params=params)
            r=json.loads(r.text)
            assert  u'学习' in r['liju_result']['tag']
        def testzhen2(self):
            params = {
            "from":"en",
            "to":"h",
            "query": "stud" #
        }
            url = "http://fanyi.baidu.com/v2transapi"
            r = requests.request("post", url, params=params)
            r=json.loads(r.text)
            assert  u'' in r['liju_result']['tag']
        def tearDown(self):
            pass
    if __name__=='__main__':
        report_dir= r's.html'
        re_open= open(report_dir,'wb')
        suite=unittest.TestLoader().loadTestsFromTestCase(Testbaiduapi)
        runner=HTMLTestRunner.HTMLTestRunner(
            stream=re_open,
            title=u'百度翻译api接口测试报告',
            description=u'百度翻译api接口测试详情'
        )
        runner.run(suite)

    执行后,会在当前目录下生成测试报告,截图如下:

    其他接口的测试方法也是这个思路,

    作者寄语:

    前进的道路我们充满着迷茫,

    前进的每一步我们都会有收获。

    路在脚下,我们决定不了我们的出身,但是我们可以努力改变我们未来。

    告别昨天失败的自己,努力拼搏今天,成就美好明天

     padf文档分享:https://pan.baidu.com/s/1gfuXkpP

  • 相关阅读:
    iOS 新浪微博-1.0框架搭建
    实体框架 Code First
    Autofac 依赖注入框架 使用
    Python3.4下使用sqlalchemy
    将做好的py文件打包成模块,供别人安装调用
    ORA-12541:TNS:no listener 客户端tnsnames.ora配置,以及服务端listener.ora配置
    ADO 连接数据库,取到VT_DATE型日期转换成 int型
    python中date、datetime、string的相互转换
    VC++6.0 Win32 C2065:SM_XVIRTUALSCREEN
    Navicat Premium连接Oracle 问题汇总
  • 原文地址:https://www.cnblogs.com/leiziv5/p/6422954.html
Copyright © 2011-2022 走看看