Python+unittest+requests+HTMLTestRunner框架

1 目录说明

common:公共文档,存放包含HTMLTestRunner.py,logUtils.py等公用文件

data:数据文档,存放测试数据;接口数据使用excel存储

log:存放日志文件

report:存放测试报告

page:编写模块对象层的代码,即把模块公共的方法封装成对象以供调用

testCase:测试用例代码,按照模块划分

runTest:执行所有测试用例的文件

项目目录

2 common

#helper.py

#helper.pyimport os, xlrd, json, demjson, unittestclass Helper(object):'''公共方法'''def base_dir(self,filename,folder='data'):'''返回文件路径params filename:文件名称params folder:文件夹 '''return os.path.join(os.path.dirname(__file__),os.path.pardir, folder, filename)def read_excel(self,rowx,filename='data.xlsx'):''':return:读取excel中数据并且返回:params filepath :xlsx文件名称:params rowx:在excel中的行数'''book = xlrd.open_workbook(self.base_dir(filename))sheet = book.sheet_by_index(0)return sheet.row_values(rowx)def get_url(self,rowx):'''获取请求地址:params rowx:url所在的行数'''return self.read_excel(rowx)[1]def get_data(self,rowx):'''获取请求数据:params rowx:url所在的行数'''return demjson.decode(json.loads(demjson.encode(self.read_excel(rowx)[2], encoding='utf-8')))if __name__ == '__main__':t = Helper()print(t.get_url(1))print(t.get_data(1))

HTMLTestRunner.py,logUtils.py文件在网上找自己喜欢的格式下载放到目录即可

3 page

#user.py

import requestsdef getHeaders(Authorization=""):'''返回请求头'''headers = {"Content-Type": "application/json", "Authorization": Authorization}return headersdef post(url,params={},data={}):'''对post二次封装'''r = requests.post(url=url,headers=getHeaders(),timeout=6,json=data,params=params)return rdef get(url,params={},data={}):'''对get二次封装'''r = requests.get(url=url,headers=getHeaders(),timeout=6,json=data,params=params)return rif __name__ == '__main__':print(getHeaders())

4 testCase

#test_user.py

from page.user import *
from common.helper import *class TestUser(unittest.TestCase,Helper):@classmethoddef setUpClass(cls):print("start===============!")@classmethoddef tearDownClass(cls):print("end===============!")def test_user_001(self):'''登录'''r = post(self.get_url(1), params=self.get_data(1))print(r.json())self.assertEqual(r.json()['code'],200)self.assertIn('token',r.text)with open(self.base_dir('pctoken'),'w',encoding='utf-8') as f:f.write(r.json()['data']['token'])@propertydef getPctoken(self):'''获取成功登录的token'''with open(self.base_dir('pctoken'), 'r', encoding='utf-8') as f:return f.read()if __name__ == '__main__':unittest.main(verbosity=2)

5 runTest

#!/usr/bin/env python
#author xqimport  unittest
import os
from common import HTMLTestRunner
from common.helper import Helper
from common.logUtils import LogUtils
import timedef getSuites():suites = unittest.defaultTestLoader.discover(start_dir=os.path.join(os.path.dirname(__file__),'testCase'),pattern='test_*.py',top_level_dir=None)return suitesdef getNowTime():return time.strftime('%y-%m-%d-%H-%M-%S',time.localtime())def run():report_filename = Helper().base_dir(folder='report', filename=getNowTime()+'report.html')HTMLTestRunner.HTMLTestRunner(stream=open(report_filename,'wb'),verbosity=2,title='自动化测试报告',description='自动化测试详细的报告').run(getSuites())LogUtils.log().info('测试结束,生成基于HTML的测试报告')if __name__ == '__main__':run()

python ui自动化测试框架_Python自动化测试框架相关推荐

  1. python三大框架_python 三大框架的 介绍。

    在python语言中,有着特别厉害的三大框架. 这三个框架分别为:Flask框架,Tornado框架,Django框架. Flask框架:Flask诞生于2010年,是Armin ronacher(人 ...

  2. python 爬虫哪个好_Python爬虫框架哪个最好用最简单

    想使用python爬虫框架开发个爬虫,但目前了解有限,希望大家帮忙推荐几个,谢谢啦~ 另外,大家平常工作中都使用python干些什么事情呢?网站开发?爬虫?还是运维? scrapy 爬虫框架.纯pyt ...

  3. python api开发用什么框架_python api框架

    关于 python api框架的搜索结果 问题 哪种python框架仅适合于api 我是Python的新手,并希望使用python构建其余的完整Web服务.由于某些依赖性,无法使用任何其他脚本语言. ...

  4. python安装flask框架_Python Flask框架的安装

    Flask 框架是 Python 中一个比较重要的框架,在开发网站中极具优势,下面进行具体介绍. FIask框架简介 Flask 是当前流行的 Web 网站框架,它是基于 Python 实现的.Fla ...

  5. python ui自动化测试仪器_python UI自动化测试

    为了减小维护成本: 1.UI自动化测试需要有较为稳定的环境 2.代码设计合理,那么我们就需要面向对象的设计一个框架,将重复的代码模块化 一.首先总结一下 UI自动化大概要哪些模块 1.config(配 ...

  6. python制作考试系统_python测试框架数据生成工具最全资源汇总

    xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...

  7. python 文案自动生成_Python自动化测试如何自动生成测试用例?

    原文作者:陈安妮annie1 原出处:简书 上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰,我们将立即处理. 传统的测试用例需要测试或者开发人员将用户的操作用代码表示出来,通过断言判断 ...

  8. python基础框架_Python基础框架和工具-阿里云开发者社区

    Python基础框架和工具 最近在学Python金融大数据分析,在安装Python进行大数据分析的环境时遇到很多问题,例如:在安装pandas包时候就要到各种错误,总是缺少很多安装包,最后发现利用Py ...

  9. python自动化测试数据驱动_Python 自动化测试(四):数据驱动

    Python 自动化测试(四):数据驱动 本周测试公开课<Pytest 自动化测试最佳实践:实用特性与进阶技巧>! 在实际的测试工作中,通常需要对多组不同的输入数据,进行同样的测试操作步骤 ...

最新文章

  1. easyui源码翻译1.32--Messager(消息窗口)
  2. Redis学习笔记~Redis在windows环境下的安装
  3. jdk1.4容器类关系图
  4. 单元测试Struts2的Action(包含源码)
  5. android7.1.1大小,浅谈Android7.1.1 for 360 N5
  6. 如何让你的操作系统更安全二
  7. 【废弃】【WIP】JavaScript 函数
  8. android HttpClient,DefaultHttpClient,AbstractHttpClient之间关系
  9. python实现提取jira bug列表
  10. VoIP安全问题解析
  11. javascript 学习教程
  12. HTML--day02
  13. 在微信上如何查看2个人之间所有的红包转账记录,请注意是所有的?
  14. 北理珠计算机学院罗晓莹,“职”等你来 | 计算机职业发展中心2020年见面大会,我们如期相遇~...
  15. 送你一份有态度的红包封面!
  16. 带发送FIFO缓冲的RX232串口发送以及把众多文件变成“黑匣子”用于其它工程的调用...
  17. 【JSP】测试Ajax
  18. STM32CubeMX使用教程
  19. linux的tar命令详情;linux多个文件压缩打包到一个压缩文件
  20. ElasticSearch三种分页方式以及各优缺点(一文知道如何抉择)

热门文章

  1. python中反斜杠_Python中的正斜杠/与反斜杠\
  2. 中富之命能有多少钱_邯郸白铁风管工每天工资多少钱?白铁风管价格多少钱你能接受?...
  3. 字节跳动开发者工具_FAQ | 字节跳动小游游戏发布常见问题汇总
  4. python爬取网页有乱码怎么解决_Python爬取网页requests乱码
  5. c++ so 反射_c++如何实现反射功能?
  6. android 发送广播_从0系统学Android--5.2 发送广播
  7. pycharm运行程序时看不到任何结果显示
  8. python中序列(列表list和元组tuple)的用法
  9. Python数据类型-----列表
  10. mysql rpm 启动_MySQL安装(rpm)和启动配置