Appium为故障截图
我正在使用Appium、Serenity和POM模型构建android框架 如果任何一步都失败了,我想截图 有人能帮我写代码吗?请告诉我放在哪里? 我有页面、步骤和步骤定义类。Appium为故障截图,appium,appium-android,takesscreenshot,Appium,Appium Android,Takesscreenshot,我正在使用Appium、Serenity和POM模型构建android框架 如果任何一步都失败了,我想截图 有人能帮我写代码吗?请告诉我放在哪里? 我有页面、步骤和步骤定义类。 不确定在哪里实现它?我试图通过OpenCV库将图片与模板进行比较。我就是这么做的: 将方法添加到base\u page.py def compare_image_with_screenshot(self, image_name: str): os.chdir('../src/screenshots/')
不确定在哪里实现它?我试图通过OpenCV库将图片与模板进行比较。我就是这么做的:
base\u 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)
@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')
@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中常见的屏幕截图,请提供您发现的一些错误。下面是测试失败时获取视频的示例
def save_screenshot(appdriver):
allure.attach(
appdriver.get_screenshot_as_png(),
name='screenshot',
attachment_type=allure.attachment_type.PNG
)
有什么意见吗?嗨,米哈伊尔,谢谢你的回复。你在做屏幕比较吗?我想为测试结果截图,也只有在失败的情况下才会截图。你也可以分享一下appium serenity框架pls吗?是的,我的例子是关于截图比较的。如果您需要通过失败获得屏幕截图,我可以用诱惑框架展示示例。我在下一个答案中添加了其他答案。
def save_screenshot(appdriver):
allure.attach(
appdriver.get_screenshot_as_png(),
name='screenshot',
attachment_type=allure.attachment_type.PNG
)