Appium正在对故障进行截屏



我正在使用Appium、Serenity和POM模型构建android框架。

如果任何一个步骤失败,我想拍下截图。

有人能帮我写代码吗?请告诉我该放在哪里?我有Pages,steps和stepdefinition类。不确定在哪里实施?

我试图通过OpenCV库将图片与模板进行比较。我就是这么做的:

  1. 将方法添加到base_page.py

    def compare_image_with_screenshot(self, image_name: str):
    os.chdir('../src/screenshots/')
    with open(f'{image_name}.png', 'rb') as img:
    first_image = base64.b64encode(img.read()).decode('ascii')
    second_image = base64.b64encode(self._driver.get_screenshot_as_png()).decode('ascii')
    return self._driver.get_images_similarity(first_image, second_image)
    
  2. 在页面对象文件中使用此方法。

    @allure.step('Compare screenshot with template')
    def get_image_comparison_percents(self):
    """
    This method gets screenshot on device with template in repo. Comparison result is percentage of similarity. Test is OK if comparison more than 90%
    """
    result = self.compare_image_with_screenshot(OfflineLocators.offline_stub)
    return result.get('score')
    
  3. 在必要的测试中使用步骤。

    @allure.link(url='https://jira.myproject.tech/browse/TEST-1', name='TEST-1 - Offline stub')
    @allure.title('Offline stub')
    def test_offline_stub(appdriver):
    TourActions(appdriver).skip_tour()
    Navigation(appdriver).open_my_offline_page()
    assert Offline(appdriver).get_page_title_text() == 'Offline'
    assert Offline(appdriver).get_image_comparison_percents() > 0.9
    

所有这些的结果是,我得到了一些图片相似性的百分比。它可以是你所需要的百分比。对我的测试来说还可以。

如果你的意思是测试结果的截图,请告诉我,我可以向你展示我是如何使用诱惑的。

如果你指的是Appium中常见的屏幕截图,请提供一些你发现的错误。

下面是测试失败时获取视频的示例。

  1. conftest.py(在根目录中(

    @pytest.fixture
    def appdriver():
    driver = config.get_driver_caps()
    if config.IS_IOS:
    driver.start_recording_screen(videoQuality='high', videoType='mpeg4', videoFps='24')
    else:
    driver.start_recording_screen()
    yield driver
    attach_device_log(driver)
    save_screenshot(driver)
    driver.quit()
    
  2. 保存屏幕截图方法

    def save_screenshot(appdriver):
    allure.attach(
    appdriver.get_screenshot_as_png(),
    name='screenshot',
    attachment_type=allure.attachment_type.PNG
    )
    

相关内容

  • 没有找到相关文章

最新更新