Skip to main content

馒头的第三方库

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

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


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.4.7.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

steamedbun-2.4.7-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

Details for the file steamedbun-2.4.7.tar.gz.

File metadata

  • Download URL: steamedbun-2.4.7.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

Hashes for steamedbun-2.4.7.tar.gz
Algorithm Hash digest
SHA256 7668532ff7301604c3b00d1dfe055fd547d8d4f63b1c359e16f27bd2a8199593
MD5 46aef8b2bf9035cac4ee326c0f89ac6a
BLAKE2b-256 12e5d9fcf0f2e53aaec3d0c0c9c586129dd04ddef855d51e541d3657f2de2727

See more details on using hashes here.

File details

Details for the file steamedbun-2.4.7-py3-none-any.whl.

File metadata

  • Download URL: steamedbun-2.4.7-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

Hashes for steamedbun-2.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 12e00bd1134a76d822d387e16450464251d76d06f996e174583b12c49016b572
MD5 d8aa222cde24e8b8c1d0fec9f28a1098
BLAKE2b-256 43670c529a8ef27344382c5b2dd0f20d027640546dbd9afeaef41d8b698339f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page