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

# 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


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.1.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.5.1-py3-none-any.whl (1.7 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: steamedbun-2.5.1.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.5.1.tar.gz
Algorithm Hash digest
SHA256 94a4974097e6f0c49cf091e9d7fa2a3191ab7b227a1bd0cc162163d1c73da9e9
MD5 ac2e3c56f751e0a8a2502eec19e6b0a9
BLAKE2b-256 3ae6c53aea813b5d5fd1f2210f55056bf5b504325e43f3090609ced9a0e9e28f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: steamedbun-2.5.1-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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f82fc6bd60f2f917a987181e716e3e95447633bc95760e11ba3b85e576c348cd
MD5 fcb1dee3cbcedca0020b6a5dd4fdd6f4
BLAKE2b-256 e3365d12ed162333ecebdf3629b9615b06e89f5ecbbd6d47c7464f9816065588

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