首页 > 其他分享 >APP自动化--pytest-把图片添加到测试报告中

APP自动化--pytest-把图片添加到测试报告中

时间:2023-05-20 18:22:32浏览次数:35  
标签:测试报告 screenshot -- APP driver pytest html import

pytest输出测试报告时,有时候需要把截图插入报告中,操作可以如下

用例如下:

from pytest_html import extras  导入包
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2023/5/12 17:44
# @Author  : gezirui
# @File    : test_dsw_app_ss_011_截图实现.py
# @Software: PyCharm

# from Package.start_session import start_session
# from Package.import_all import *
from pytest_html import extras  # 是一个列表对象

def test_dsw_app_ss_011(driver, by, ec, extra):    # 这里的driver是调用conftest中的函数driver(),
    # 即diver= driver(),这里的extra也是一个列表,被导包的extras嵌套
    # driver, wait = start_session()
    driver, wait = driver   # 这里把start_session换成driver
    # driver.get_screenshot_as_base64()   # 获取的是base64的数据
    # driver.save_screenshot("会话之前.png")
    extra.append(extras.image(driver.get_screenshot_as_base64()))  # 这里用extra列表添加一个二进制图片
    print("会话开始了")
    db_data = ["九重华锦"]
    locator = (by.ID, "com.zhao.myreader:id/iv_search")
    ele = wait.until(ec.visibility_of_element_located(locator))
    driver.save_screenshot("搜索之前.png")
    ele.click()     # 点击搜索按钮

    locator = (by.ID, "com.zhao.myreader:id/et_search_key")
    ele = wait.until(ec.visibility_of_element_located(locator))
    # driver.save_screenshot("输入之前.png")
    extra.append(extras.image(driver.get_screenshot_as_base64()))
    ele.send_keys("莫西凡")  # 输入框输入”莫“

    locator = (by.ID, "com.zhao.myreader:id/tv_search_conform")
    ele = wait.until(ec.visibility_of_element_located(locator))
    # driver.save_screenshot("查询之前.png")
    extra.append(extras.image(driver.get_screenshot_as_base64()))
    ele.click()  # 点击查询按钮

    locator = (by.ID, "com.zhao.myreader:id/tv_book_name")
    all_book = wait.until(ec.visibility_of_all_elements_located(locator))  # 找到书名元素块
    all_book_name = [i.text for i in all_book]  # 书名添加进列表
    # driver.save_screenshot("断言之前.png")
    extra.append(extras.image(driver.get_screenshot_as_base64()))
    # if sorted(db_data) == sorted(all_book_name):print("断言通过")
    # 显示工作中,不用IF判断用例结果
    print("开始断言")
    assert sorted(db_data) == sorted(all_book_name), f"断言失败,‘all_book_name’的值为{all_book_name},'db_data'的值为{db_data}"
    print(driver.session_id)

然后在main文件中运行测试用例。

import time
import pytest
# from pytest_html.html_report import # 后面的命令如果找不到,就去这里找,把下划线改成横杠就可以了
# pytest.main(["-vs", "testcase/test_dsw_app_ss_011_2.py"])

"""生成测试报告"""
# "--html=report/report-html", "--self-contained-html"    后面的命令来声明报告是html
# pytest.main(["--html=report/report.html1", "--self-contained-html", "testcase/test_dsw_app_ss_011_2.py"])
pytest.main([f"--html=report/{int(time.time())}report.html", "--self-contained-html", "testcase/test_dsw_app_ss_011_截图实现.py"])

 

标签:测试报告,screenshot,--,APP,driver,pytest,html,import
From: https://www.cnblogs.com/gezirui/p/17417586.html

相关文章

  • 数字型union注入
           ......
  • 搭建python接口自动化框架
    1.最近一年接触Java接口自动化较多,倒是忘记了一些python,重拾记忆目录展示:(1)allure相关文件是集成到了插件,运行时,设置了路径之后自动创建的(2)business文件下则是业务处理脚本,可以创建app,小程序,web端的自动化脚本编写(3)common文件则是处理业务工具类,读取配置文件,excel......
  • 模为素数的二次剩余
    来自潘承洞、潘承彪《初等数论》,有删改。由于\(p=2\)的情况过于显然,所以文中假定\(p\)是奇素数。一、引入假设\(p\not\mida\),二次同余方程的一般形式是\(ax^2+bx+c\equiv0\pmodp\),由于\(\gcd(p,4a)=1\),所以可以表示为\(4a(ax^2+bx+c)\equiv0\pmodp\),所以知道\((......
  • Go源码阅读——github.com/medcl/esm —— v5.go
    esm(AnElasticsearchMigrationTool)——v5.go https://github.com/medcl/esmrelease:8.7.1通过阅读好的源代码,细致思考,理性分析并借鉴优秀实践经验,提高zuoyang的编程水平,所谓"他山之石,可以攻玉" 该是如此吧。 /*Copyright2016Medcl(mATmedcl.net)Licensed......
  • Pytest单元测试报告用例标题中文名称怎么显示(转载)
    背景基础不牢,地动山摇。在开发编程一途,尤为重要。有python同学喜欢使用pytest框架实现接口自动化测试方案,在使用参数化过程中,无论是控制台还是测试报告中都没有展示用例名称(中文),而是参数化过程的参数顺序,如下图所示:从报告效果上看,存在不知道fail的用例是哪......
  • 禁止app左右按钮滑动
     onBackPress(options){this.backButtonPress++; if(this.backButtonPress>1){ plus.runtime.quit(); }else{ plus.nativeUI.toast('再按一次退出应用'); } setTimeout(function(){ this.backButtonPress=0; },1000); returntrue; ......
  • 拨打电话
     //点击号码拨打电话 callPhone(val){ //window.location.href='tel://110' uni.makePhoneCall({ phoneNumber:val, }) plus.device.dial(val,true) },uniapp发布需要配置......
  • java 递归拼接树形结构代码
    1、json数据(目标)[{label:'一级1',children:[{label:'二级1-1',children:[{label:'三级1-1-1'}]}]},{label:'一级2'......
  • 强制使用索引
    可以通过使用MySQL的FORCEINDEX或者HINTS来强制使用索引查询。FORCEINDEX语句在查询中使用FORCEINDEX语句,强制MySQL使用指定索引。FORCEINDEX语句可以在查询内将优先级更高的索引强制用于查询。例如:--强制使用idx_name索引查询SELECT*FROMtable_nameFORCEINDEX(......
  • DC NXT 库和设计对象介绍
    physicalsynthesis 物理综合概念三种启动方式dcnxt_shell-topographical_mode  #交互式命令行dcnxt_shell-topo-gui                     #图形界面dcnxt_shell-topo-f RUN.tcl|tee-iRUN.log       #批处理模式物理综合就是......