python3.6的requests库&HTMLTestRunner实现测试报告

‘‘‘1. 在suite.addTest时,可以把需要的用例先写入一个列表list中,list当做addTest的参数;2. 在unittest.main(verbosity=2)中,默认为1,设置为2,可以输出每个case的执行情况;3. 所有用例的开始结尾,只运行一遍setup 和 teardown,那么用setUpClass 和 tearDownClass,注意装饰器;4. 在不需要的case上写入@unittest.skip(‘"I don\‘t want to run this case."‘),就可以跳过它

5. skip装饰器一共有三个:    unittest.skip(reason)、    unittest.skipIf(condition, reason)、    unittest.skipUnless(condition, reason),    skip无条件跳过,    skipIf当condition为True时跳过,    skipUnless当condition为False时跳过。6. 文件日期命名:now = time.strftime(‘%Y-%m-%M %H_%M_%S‘)

‘‘‘

注意:1. 未加入HTMLTestRunner时,如下不可以被注销:

2. https 报warnning,直接把相关文件中的函数暴力注销:

open -a pycharm /Users/vivi/Library/Python/3.6/lib/python/site-packages/requests/packages/urllib3/connectionpool.py

注销844-851

3. HTMLTestRunner 只支持python2.7,需要修改一些地方,这个可以google,到处都有,很全面;

from unittest import TestCase
import requests
from play import LoggIn
import unittest
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
import HTMLTestRunner
import sys,time

class TestLoggIn(TestCase):

    @classmethod
    def setUpClass(self):
        self.url = LoggIn.logUrl
        print(‘do something before‘)

    @classmethod
    def tearDownClass(self):
        print(‘over‘)
        pass

    # def setUp(self):
    #     self.url = LoggIn.logUrl
    #
    # def tearDown(self):
    #     pass

    def test_account_empty(self):
        data = {‘abbr‘: ‘US‘, ‘clientType‘: ‘ios‘, ‘dBrand‘: ‘apple‘, ‘imagePHeight‘: ‘736‘, ‘imagePixels‘: ‘828‘, ‘osVersion‘: ‘iOS10.3‘, ‘password‘: ‘******‘, ‘rememberMe‘: ‘1‘,‘st‘: ‘1496557229892‘, ‘udid‘: ‘9fa81f8b42277b1e9567e‘}

        r= requests.post(self.url,data=data,verify=False)
        result = r.json()
        self.assertEqual(result[‘code‘],‘220120‘)
        self.assertEqual(result[‘message‘],‘is empty!‘)
        self.assertEqual(result[‘result‘],‘account or password is null‘)

    # @unittest.skip(‘"I don\‘t want to run this case."‘)
    def test_account_error(self):
        data = {‘abbr‘: ‘US‘, ‘clientType‘: ‘ios‘, ‘dBrand‘: ‘apple‘, ‘imagePHeight‘: ‘736‘, ‘imagePixels‘: ‘828‘, ‘loginAccount‘:‘name123‘,‘osVersion‘: ‘iOS10.3‘, ‘password‘: ‘******‘, ‘rememberMe‘: ‘1‘,‘st‘: ‘1496557229892‘, ‘udid‘: ‘9fac416e2d75e77b1e9567e‘}

        r= requests.post(self.url,data=data,verify=False)
        result = r.json()
        self.assertEqual(result[‘code‘],‘22012811‘)
        self.assertEqual(result[‘message‘],‘account or password error thrid!‘)
        self.assertEqual(result[‘result‘],‘account or password error third!‘)

    def test_account_pass(self):
        data = {‘abbr‘: ‘US‘, ‘clientType‘: ‘ios‘, ‘dBrand‘: ‘apple‘, ‘imagePHeight‘: ‘736‘, ‘imagePixels‘: ‘828‘, ‘loginAccount‘:‘name‘,‘osVersion‘: ‘iOS10.3‘, ‘password‘: ‘***‘, ‘rememberMe‘: ‘1‘,‘st‘: ‘1496557229892‘, ‘udid‘: ‘9fac416e2d75e42277b1e9567e‘}

        r= requests.post(self.url,data=data,verify=False)
        result = r.json()
        self.assertEqual(result[‘code‘],‘200‘)
        self.assertEqual(result[‘message‘],‘success!‘)
        self.assertEqual(result[‘result‘][‘loginAccount‘],‘name‘)
        self.assertEqual(result[‘result‘][‘memberPicture‘],‘pre/diyrelease/320187/150365518619893164.jpg‘)

if __name__ == ‘__main__‘:
    # verbosity=2 详细输出每个case的执行结果
    # verbosity=1 只输出对错:失败是 F,出错是 E,跳过是 S
    # verbosity=0 不输出任何结果

    # unittest.main(verbosity=2)
    suite = unittest.TestSuite()

    # 添加到TestSuite中的case是会按照添加的顺序执行的
    suite.addTest(TestLoggIn(‘test_account_empty‘))
    suite.addTest(TestLoggIn(‘test_account_error‘))
    suite.addTest(TestLoggIn(‘test_account_pass‘))

# 这样 用列表,和上面一个个添加一样的效果
#     tests = [TestLoggIn(‘test_account_empty‘),TestLoggIn(‘test_account_error‘),TestLoggIn(‘test_account_pass‘)]
#     suite.addTest(tests)

    # 执行测试用例
    # runner = unittest.TextTestRunner()
    # runner.run(suite)

    # 执行并写入文件
    # suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestLoggIn))

    # now = time.strftime(‘%Y-%m-%M %H_%M_%S‘,time.localtime(time.time()))
    now = time.strftime(‘%Y-%m-%M %H_%M_%S‘)
    filename =‘/Users/vivi/PycharmProjects/testreport_html/report/‘+ now + ‘_result.html‘
    # filename = ‘/Users/vivi/PycharmProjects/a.html‘
    fp = open(filename,‘wb‘)

    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                            title=‘Play LogIn Test‘,
                            description=‘generated by HTMLTestRunner.‘,
                            verbosity=2
                            )
    runner.run(suite)
    fp.close()

  

执行成功:

执行失败:

时间: 2024-10-12 06:30:49

python3.6的requests库&HTMLTestRunner实现测试报告的相关文章

python3接口测试(requests库)

一.一般概念 1.导入第三方库 import requests 2.发送get请求#userURL为客户端访问的URL地址myResponse = requests.get(userURL) 3.查看返回结果#myResponse.header包含内容:{'Server': 'nginx/1.10.1', 'Date': 'Sat, 18 Aug 2018 02:57:28 GMT', 'Content-Type': 'text/html; charset=GBK', 'X-Powered-By

Python3网络爬虫——三、Requests库的基本使用

一.什么是Requests Requests是用Python语言编写,基于urllib,采用Apache2 Licensed开元协议的HTTP库.它比urllib更加的方便,可以节约我们大量的工作完全满足HTTP测试需求.简单来讲,即Python实现的简单易用的HTTP库. 二.Requests库的安装 如果是初学者,建议使用原生Python3进行安装. 1 >> pip3 install requests 如果有一定的Python基础(会基本语法即可),使用anaconda进行安装更加方便,

python3添加requests库

1.资源下载 https://codeload.github.com/psf/requests/zip/master https://www.python.org/ https://files.pythonhosted.org/packages/41/b6/4f0cefba47656583217acd6cd797bc2db1fede0d53090fdc28ad2c8e0716/certifi-2018.10.15.tar.gz https://files.pythonhosted.org/pac

requests库详解 --Python3

本文介绍了requests库的基本使用,希望对大家有所帮助. requests库官方文档:https://2.python-requests.org/en/master/ 一.请求: 1.GET请求 coding:utf8 import requests response = requests.get('http://www.httpbin.org/get') print(response.text) 2.POST请求 # coding:utf8 import requests data = {

python3 requests库文件上传与下载

在接口测试学习过程中,遇到了利用requests库进行文件下载和上传的问题.同样,在真正的测试过程中,我们不可避免的会遇到上传和下载的测试. 文件上传: url = ztx.host+'upload/uploadFile?CSRFToken='+self.getCSRFToken()#上传文件的接口地址 header = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko', '

使用requests库提交multipart/form-data 格式的请求

前言: Requests是用Python语言编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库.它比urllib更加方便,可以节约我们大量的工作,完全满足HTTP测试需求.更重要的一点是它支持Python3哦! 一.安装 Requests >>>pip3 install requests 二.multipart/form-data 格式的请求举例 如下图所示,请求里面有4个参数:handle,option,modify_offer_type,Filedata

Python3.x:第三方库简介

Python3.x:第三方库简介 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex – 可以在虚拟环境中执行命令. virtualenv – 创建独立 Python 环境的工具. virtualenvwrapper- virtualenv 的一组扩展. 包管理 管理包和依赖的工具. pip – Python 包和依赖关系管理工具. pip-tools – 保证 Python 包依赖

python爬虫之requests库

requests库介绍 发送http请求的第三方库,兼容python2和python3 安装: pip install requests 使用: import requests发送请求response = requests.get(url)response = requests.post(url) 响应内容请求返回的值是一个response对象,是对http协议服务端返回数据的封装response对象主要属性和方法: response.status_code  返回码  response.hea

HTMLTESTRunner自动化测试报告增加截图功能

我们都知道HTMLTESTRunner自动化测试报告,是Unittest单元测试框架报告,那么在做ui测试的时候就有点不适用了. 我们需要出错截图功能. 以下是我改的,增加了截图功能,先展示界面,再展示代码. 概要界面: 展开界面: 代码展示: 以下代码,只支持python2.7;至于python3的话,可以自己改一下. 截图方式:print 'screenshot:', timestrmap, '.png'    在要截图的位置print就可以了. 原理:展示时通过捕获unittest  pr