馒头的第三方库
Project description
✅ create pytest project 创建pytest自动化框架项目
cpt my_pytest_project
# 执行上述命令后, 根据后续指令配置项目环境即可
✅ write excel 写多个Sheet表单示例
from SteamedBun import FileOperate
from SteamedBun import FileNames
FileOperate.write_excel_with_many_sheets(
filename=FileNames.ExcelFile,
data={
"sheet1": {
"A列": ["a", "b", "c"],
"B列": ["1", "2", "3"]
},
"sheet2": {
"学科": ["en", "cn", "mt"],
"分数": [30, 80, 70]
}
}
)
✅ selenium WAP 自动化示例
from SteamedBun import Browser
driver = Browser(headless=False, wap=True, width=476, height=776)
driver.get("https://www.example.com")
driver.find_element("id", "id_v1").send_keys("馒头")
driver.close()
✅ 原始mysql工具类示例
from SteamedBun import MySQL
with MySQL() as db:
print(db.execute(sql=""))
✅ 自定义级别日志示例
from SteamedBun import logger
logger.step(msg="这是自定义级别的日志")
# 上述将输出以下内容:
# 2024-10-09 22:27:34,510 | tmp.py | 8 | STEP | 这是自定义级别的日志
✅ playwright 自动化示例
from SteamedBun import playwright, Locator, Locators
from playwright.sync_api import sync_playwright
class PypiPage(playwright.Page):
pypi_url = "https://pypi.org/"
search_input = Locator(selector="[id='search']", describe="搜索框")
search_btn = Locator(selector="form > button", describe="搜索按钮")
txt = Locators(selector="//*[text()='三方库']", describe="随机文案")
with sync_playwright().start().chromium.launch(headless=False) as browser:
driver = browser.new_page()
page = PypiPage(page=driver)
page.goto(page.pypi_url)
page.search_input.send_keywords(value="SteamedBun")
# page.search_input.send_keywords(value="SteamedBun", enter=True)
# page.search_input.send_keyboards(key="Enter")
page.search_btn.click()
print([each.inner_text() for each in page.txt])
# page.sleep()
# page.screenshot()
# page.close()
✅ 提供指定元素组件 截图功能 + UI自动化识别动态验证码功能
from SteamedBun import Browser
from SteamedBun import Element
from SteamedBun import Page
from SteamedBun import case_title
from SteamedBun import case_step
class QuotePage(Page):
"""
古诗词网站 登录页面元素
"""
example_url = "https://so.gushiwen.cn/user/login.aspx"
img_code = Element(id_="imgCode", describe="动态验证码")
@case_title(title="识别动态验证码")
def test_ocr_dynamic_code():
with case_step("进入古诗词网站"):
driver = Browser()
page = QuotePage(driver=driver)
page.open(page.example_url)
with case_step("截图 指定的组件"):
img_name = "img_code.png"
page.img_code.screenshots(filename=img_name)
with case_step("ocr 识别 截图中的验证码"):
# code = ocr_word(filename=img_name) # 若不可用, 手动去下载ddddocr库 替换该方法
code = "1234"
print(f"code: {code}")
✅ 提供priority 优先级装饰器
from SteamedBun import case_priority
@case_priority(order=2)
def test_01():
pass
@case_priority(order=1)
def test_02():
pass
✅ 新增http请求 日志打印开关
from SteamedBun import request
request("https://www.baidu.com", show=False)
✅ UI驱动工具 - 提供持久态可复用的浏览器窗口
from SteamedBun import Browser
from SteamedBun import Element
from SteamedBun import Page
class BaiDuPage(Page):
example_url = "https://baidu.com"
input_search = Element(id_="kw")
def test_chrome_browser():
# browser_type 可以指定浏览器类型, 若不指定 默认就是Chrome
driver = Browser(browser_type="chrome")
page = BaiDuPage(driver=driver)
page.open(page.example_url)
page.input_search.send_keys("321")
✅ 全局配置工具 - 支持读写ini类型文件、初始化运行环境
from SteamedBun import set_env_by_file, set_env
# conf.ini
#[environments]
#current_env = test
#enable_envs = [test, tce, online, perf, wiseperf1v1]
set_env_by_file(env_path="conf.ini")
# 或者
set_env(env="test")
✅ 装饰器 - 数据驱动装饰、用例描述修饰器
from SteamedBun import param_file, case_title
@param_file("测试数据文件")
@case_title("用例标题")
def test_example(param):
print(param)
✅ 日志打印工具
from SteamedBun import logger
from SteamedBun import FileNames
# 默认打印INFO级别的日志至控制台
logger.info("info")
# 打印DEBUG级别的日志至文件, 仍受限于全局的日志等级: 实际仍然打印INFO级别的
logger.setFilename(filename=FileNames.LogFile, level="DEBUG")
logger.warning("warning")
# 设置全局的日志打印等级
logger.setLevel(level="DEBUG")
✅ 时间回溯工具
from SteamedBun import TimeFormat
dt1 = TimeFormat.flash_back(days=-1)
print(f"往前回溯了一天: {dt1}")
dt2 = TimeFormat.flash_back(month=1)
print(f"往后穿越一个月: {dt2}")
print(dt2 < dt1) # True
✅ 文件处理工具
from SteamedBun import FileOperate
# 设置jsonify 可以转换为json格式, 反之为字符串
FileOperate.read_file(filename="some.json", jsonify=True)
FileOperate.read_excel(filename="some.xlsx", sheet_name="Sheet1")
# 写入文件
FileOperate.write_file(filename="some.json", data="{}")
FileOperate.write_excel(
filename="some.xlsx",
data={"a列头": [1, 2, 3], "b列头": ["a", "b", "c"]}
)
✅ 邮箱邮件工具
from SteamedBun import Email
email = Email(
sender="yours@163.com",
password="yours pwd", # 发件人邮箱授权码 - 自行百度获取
receiver=["yours@163.com", "hers@qq.com", "its@gmail.com", "and so on"])
email.send_case_report(data={
"pass": 100,
"fail": 1,
"error": 2
})
✅ 小数、百分数
from SteamedBun import point
from SteamedBun import percent
num = point(number=100, rate=2)
print(num) # 输出: 100.00
pct = percent(number=90, rate=2)
print(pct) # 输出: 90.00%
pct = percent(number=80, rate=1)
print(pct) # 输出: 80.0%
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
steamedbun-2.5.9.tar.gz
(1.7 MB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file steamedbun-2.5.9.tar.gz.
File metadata
- Download URL: steamedbun-2.5.9.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d86f4d6194ba2b88f29545a6ef2ee5f1b259182a03c11f05411db8d2e97895fe
|
|
| MD5 |
91da814f20e1e4219299f11fa19d5aff
|
|
| BLAKE2b-256 |
d177f6b7b8a062eecbfbc91fa47e115ff0e11f200fcb4b0384f3cd2492a8b754
|
File details
Details for the file steamedbun-2.5.9-py3-none-any.whl.
File metadata
- Download URL: steamedbun-2.5.9-py3-none-any.whl
- Upload date:
- Size: 1.7 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2311d3f9743327cc732636405187879dca36ed875ff8b09e8a9d97b0bb667701
|
|
| MD5 |
b5811197d23d4ff0c3394aeffd559453
|
|
| BLAKE2b-256 |
2bbbfb43cd3759102682b572718219123450b9852d3365b0be234ced0bdeb592
|