• 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)

    
    
  • 相关阅读:
    第九周
    第七周.
    第六周.
    第二次作业
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    第五周作业
    统计一行文本的单词个数
  • 原文地址:https://www.cnblogs.com/Amelia0201/p/10340797.html
Copyright © 2020-2023  润新知