打造自己的自动化测试框架--日志、截图、录屏

一. 使用继承:封装数据驱动框架,包括日志,截图(上传到 allure),录屏

     1. 继承、组合

     2. 日志

import logging
logging.basicConfig(level=logging.INFO)

logging.info(f"开始查找元素: args是 {args},kwargs是 {kwargs}")

     3. 截图

      在base_page里封装截图的方法,然后调用此函数截图,后截的:

    def screenshot(self,picture_path):
        self.driver.save_screenshot(picture_path)
# 截图每个定位的元素,对图片加上时间戳的名称
self.screenshot(str(time.time()) + ".png")

      4. 截图并上传到allure

  安装allure:
使用allure传附件:
import allure
#截图传给allure:先从本地读取图片,再以二进制形式传给allure
with open("./tmp.png",'rb') as f:
       picture = f.read()
allure.attach(picture, attachment_type=allure.attachment_type.PNG )
#错误的传法是:不按二进制传,到时传进去的图片无法打开
#allure.attach("./tmp.png", attachment_type=allure.attachment_type.PNG)

    在terminal中运行allure:

    切换目录,进入用例层: cd test_frame/testcase           

    使用pytest运行allure生成报告,并保存在上一级目录下的report目录里: pytest test_search.py --alluredir ../report

    打开allure: allure serve ./report

    在suites里可以看到附件图片

    5. 录屏

   5.1 依赖driver录制:初始化driver后才可以录制

self.driver.start_recording_screen("../video.mp4")
原生app录屏,需要adb权限,不方便使用

5.2 第三方工具

    使用工具srcpy,本质是投屏软件:

    下载地址:https://github.com/Genymobile/scrcpy, zip压缩包下载下来解压,然后设置exe文件的环境变量path

    

 

 

     

 

     录制方法一: 在cmd里录制: scrcpy --record file.mp4 

                 就开始录制,录制完后点ctrl+C,停止录制

     录制方法二:  使用脚本写,在conftest.ini里加fixture:

           import subprocess    #python的特性,可调命令行,也可用os

           import signal

     

  shell=true:将命令自动按空格切割

  stdout   标准输出

  stderr   错误输出

  os.kill  关闭录屏:pid进程号, signal信号

posted @ 2021-01-17 22:18  方园FPP  阅读(615)  评论(0编辑  收藏  举报