xiaobaiauto framework 简化Web与接口等自动化实现及日志搜集、报告生成、邮件发送等功能
Project description
xiaobaiauto
介绍
简化现有Selenium、Requests等框架对于页面及接口的操作,也扩展了日志搜集、报告生成、 邮件发送等功能
版本说明
版本: 功能: 实现:
1.* 只支持Web端 √
2.* 支持Web+API端 √
3.* 支持Web+API+Mock ×
4.* 支持Web+API+Mock+APP ×
5.* 支持Web+API+Mock+APP+Pref ×
备注:计划将mock独立成子项目
软件架构
集成了Selenium、SMTP、HTMLTestRunner、logging、Reuqests等模块
安装教程
pip install xiaobaiauto
or
pip install xiaobaiauto==版本号
or
pip install -U xiaobaiauto # 更新到最新版
or
pip install xiaobaiauto -i https://pypi.doubanio.com/simple #网速一般的使用本命令
***********************************注意******************************************
正确安装之后若不能正常导入本库,请将auto.*.pyd与HTMLTestRunner.py复制到自己的项目包中
*********************************************************************************
使用代码之前请确保您的电脑中已经安装好浏览器及对应的驱动内容
chrome与chromdriver驱动之间存在不兼容问题,所以最好都下载最新版本为最佳效果</b>
默认会自动安装,若自当安装失败可能是写入文件权限受限(下方为驱动下载地址)
TestCase文件实例(Pycharm社区版 2019.3,Python3.8+)
import unittest
from xiaobaiauto.auto import pageObject, Report, log, EmailHandler, Api, Key
# from auto import pageObject, Report, log, EmailHandler, Api, Key # 库文件复制到本目录下使用本行代码
class MyTestCase(unittest.TestCase):
def setUp(self):
"""
初始化日志
:return:
"""
self.logger = log()
self.client = Api()
self.page = pageObject()
self.page.init(is_max=True)
def test_api_xxx(self):
headers = {'content-type': 'application/json'}
json = {'type': 1, 'orderno': 'abcdef'}
path = 'http://127.0.0.1:8080/api/v/1.0/'
try:
self.client.api(
method='GET',
url=path,
json=json,
headers=headers,
assertText="包含的预期结果"
).json()
self.logger.info('xxx接口请求成功')
except:
self.logger.error('xxx接口请求失败')
# self.logger.debug('调试日志信息')
# self.logger.warning('警告日志信息')
# self.logger.error('错误日志信息')
def test_web_12306(self):
# 通过self.page 调用集成方法
self.page.get(url='https://kyfw.12306.cn/otn/leftTicket/init?linktypeid=dc&fs=%E4%B8%8A%E6%B5%B7,SHH&ts=%E9%83%91%E5%B7%9E,ZZF&date=2020-02-02&flag=N,N,Y')
#self.page.add_cookie(cookie_dict={'name': '', 'value': ''})
#self.page.add_cookie(cookie_str='name=xiaobai; password=123456')
chufa = self.page.xpath('//*[@id="fromStationText"]')
chufa.clear()
chufa.send_keys('上海')
chufa.send_keys(Keys.ENTER)
def tearDown(self):
pass
if __name__ == '__main__':
report_file_name = 'testReport.html'
suite = unittest.TestSuite()
# 添加需要执行的测试用例
suite.addTest(MyTestCase('test_web_12306'))
#suite.addTest(MyTestCase('test_api_xxx')) # 不运行就注释掉
fp = open(report_file_name, 'wb')
# 生成报告
runner = Report(
stream=fp,
title='测试',
description='备注信息',
tester='Tser'
)
runner.run(suite)
fp.close()
# 将测试报告发送指定邮件<数据务必修改>建议使用QQ邮箱(port参数默认使用SSL端口)
email = EmailHandler(smtp='smtp.qq.com', port=25, sender_name='qq号', sender_passwd='邮箱授权码')
email.sendemail(
_to=['1@qq.com', '2@qq.com'],
_cc=['admin@163.com', 'leader@gmail.com'],
title='邮件标题',
email_content='邮箱内容',
_type='html',
filename=[report_file_name]
)
脚本运行(三步)
step 1 : 打开cmd
step 2 : cd 脚本目录
step 3 : python 用例脚本名.py
提示
QQ邮箱或者其它企业邮箱必须提前开启SMTP服务 部分邮箱对频发发送邮件进行拦截,所以大家在使用邮箱发送消息时请勿频繁尝试
更新日志
V2.3.4
更新chromedriver.exe下载方式,部分失败原因为网络问题
V2.3.3
更新至Py3.8进行编译,有效解决高版本不能调用库的问题
V2.3.1
add_cookie()方法添加了cookie_str参数,允许使用从F12直接复制的cookie字符串
直接赋值即可,cookie_dict与cookie_str两个参数只需要一个赋值即可
V2.2.1
因2.0.0版本不能适用于Pycharm社区版,调用失败问题,已修复
参与贡献
作者: @Tser
©小白科技
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
xiaobaiauto-2.3.4.tar.gz
(127.2 kB
view hashes)
Built Distribution
xiaobaiauto-2.3.4-py3-none-any.whl
(123.7 kB
view hashes)
Close
Hashes for xiaobaiauto-2.3.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54c54eeca7ffb6e8354524c888d905a33879b390bac00055bae185138d3a3d79 |
|
MD5 | 437d2d7ca38153e3238a807248e18b55 |
|
BLAKE2b-256 | f684028ea4f3d354c00049d99526650c4b0ce53723bd1a6086b7b5f0ef0b5d54 |