zoukankan      html  css  js  c++  java
  • python接口自动化unittest+HTMLrunner

    1、创建一个packpage包

    import unittest
    import requests
    from time import sleep
    import HTMLTestRunner

    # 构造WeatherTest类,继承unittest.TestCase
    class WeatherTest(unittest.TestCase):
    # 用例执行前的准备工作
    def setUp(self):
    self.url = 'http://t.weather.sojson.com/api/weather/city'

    # 定义测试guangzhou天气的方法
    def test_weather_handan(self): # 用例方法需要以test开头,便于执行顺利
    '''
    Case01-正常存在的city_code值
    '''
    data = {'city_code':'101091001'}
    r = requests.get(self.url+'/'+data['city_code']) # 拼接接口URL
    result = r.json() # 将返回结果转换为json类型

    # 设置断言
    self.assertEqual(result['status'],200) # 状态码
    self.assertEqual(result['message'],'Success !')
    self.assertEqual(result['cityInfo']['city'],'邯郸市')
    self.assertEqual(result['cityInfo']['cityId'],'101091001')
    sleep(3) # 控制请求的间隔时间,防止过快请求而IP受限制

    def test_weather_param_error(self):
    '''
    Case02-错误的city_code值
    '''
    data = {'city_code':'666abc'}
    r = requests.get(self.url+'/'+data['city_code'])
    result = r.json()

    self.assertEqual(result['message'],'Request resource not found.')
    self.assertEqual(result['status'],404)
    sleep(3)

    def test_weather_param_non_existent(self):
    '''
    Case03-不存在的city_code值
    '''
    data = {'city_code':'123456789'}
    r = requests.get(self.url+'/'+data['city_code'])
    result = r.json()

    self.assertEqual(result['message'],'no_city_id')
    self.assertEqual(result['status'],403)
    sleep(3)

    def test_weather_no_param(self):
    '''
    Case04-不传入任何city_code值(空)
    '''
    data = {'city_code':''}
    r = requests.get(self.url+'/'+data['city_code'])
    result = r.json()

    self.assertEqual(result['message'],'Request resource not found.')
    self.assertEqual(result['status'],404)
    sleep(3)

    # 调试WeatherTest类
    if __name__ == '__main__':
    report_dir = r's.html'
    re_open=open(report_dir,'wb')
    suite=unittest.TestLoader().loadTestsFromTestCase(WeatherTest)
    runner=HTMLTestRunner.HTMLTestRunner(
    stream=re_open,
    title=u'天气接口测试报告',
    description=u'天气接口详情'

    )
    runner.run(suite)

    
    
  • 相关阅读:
    聊天界面的实现
    继续,迫不及待想学数据库
    今天休息,我来研究上次的代码了
    项目导入
    命令行常用的一下命令
    svn的安装和基本操作,及常见问题
    maven项目里写测试
    Eclipse里新建maven项目
    maven简介
    重装win7,没有管理员权限,没有以管理员身份运行
  • 原文地址:https://www.cnblogs.com/Amelia0201/p/10340797.html
Copyright © 2011-2022 走看看