用Python实现高效数据记录!Web自动化技术助你告别重复

测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供 1v1 私教指导,BAT 级别的测试管理大咖量身打造职业规划。

简介

关键数据记录是 Web 自动化测试中的关键部分,它们提供了关于系统行为和执行过程的详细信息,有助于验证用例的正确性,排查问题和确保应用程序的质量。

行为日志

行为日志是一种用于记录系统或应用程序的操作和事件的技术。它的目的是为了跟踪和记录应用程序的执行过程,以便在需要时审计、故障排查。

行为日志通常包括以下内容:

  • 时间戳(Timestamp):每个日志记录的时间,记录第个操作或事件发生的确切时间点。
  • 操作描述(Action Description):对每个操作或事件的详细描述。例如执行的操作。
  • 事件级别(Log Level):表示日志记录的重要性级别。如信息、警告、错误等。
  • 相关信息(Additional Information):可以包括与操作或事件相关的其他数据,如参数、输入值等。

步骤截图

步骤截图用于捕捉 Web 自动化测试测试中的关键执行步骤,以便验证测试用例的正确性和可视化执行过程。

步骤截图包括以下内容:

  • 屏幕截图:捕获 Web 自动化测试执行期间的屏幕图像,包括应用程序界面、当前页面内容和操作后的可视变化。
  • 元素状态截图:捕获特定元素的状态,例如鼠标悬停、点击或其他交互触发的状态。这有助于验证页面元素的交互性和正确性。
  • 控制台日志截图:捕获测试执行期间浏览器控制台的日志信息。将控制台日志与屏幕截图结合使用,有助于更全面地分析测试执行过程中的问题。

页面源代码 page source

page source 是一个用于捕获当前网页的 DOM(文档对象模型)结构的关键数据记录。用于排查元素查找问题、验证页面结构和属性。page source 通常包括以下内容:

  • HTML 结构:整个页面的 HTML 标记,包括元素、属性和内容。
  • CSS 样式:与页面关联的 CSS 样式信息,有助于了解元素的布局。
  • 元素属性:每个元素的属性,用于标识和定位元素。

JavaScript 代码:如果页面包含 JavaScript,也可以包括 JavaScript 代码,以便分析页面的交互行为。

行为日志记录

需要先导入 logging 模块,运行之后,可以看到打印了对应的行为日志。

Python 实现

def test_logging():
    # 实例化driver
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打开百度首页
    driver.get("https://www.baidu.com")
    logging.info("打开百度首页")
    # 输入霍格沃兹测试学院
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("霍格沃兹测试学院")
    logging.info("输入霍格沃兹测试学院")
    # 点击搜索
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    logging.info("点击搜索")
    time.sleep(3)
    driver.quit()


Java 实现

publicclass demoTest{
privatestaticfinalLoggerlogger=LoggerFactory.getLogger(demoTest.class);
@Test
voiddemo(){
//实例化driver
WebDriverdriver=webdriver.Chrome();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
// 打开百度首页

driver.get("https://www.baidu.com");
logger.info("打开百度首页")
// 输入霍格沃兹测试学院
driver.findElement(By.cssSelector("#kw")).sendKeys("霍格沃兹测试学院");
logger.info("输入霍格沃兹测试学院")
// 点击搜索
driver.findElement(By.cssSelector("#su")).click()
logger.info("点击搜索")
Thread.sleep(3)
driver.quit()
}}

步骤截图记录

driver.get_screenshot_as_file:用于将当前浏览器窗口的屏幕截图保存为文件,需提前创建保存截图文件的目录。

Python 实现

def test_screenshot():
    # 实例化driver
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打开百度首页
    driver.get("https://www.baidu.com")
    driver.get_screenshot_as_file(f"./screenshot/打开百度首页.png")
    # 输入霍格沃兹测试学院
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("霍格沃兹测试学院")
    driver.get_screenshot_as_file(f"./screenshot/输入霍格沃兹测试学院.png")
    # 点击搜索
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    driver.get_screenshot_as_file(f"./screenshot/点击搜索.png")
    time.sleep(3)
    driver.quit()

Java 实现

@Test
voidsogouScreen2()throwsIOException,InterruptedException{
driver.get("https://www.sogou.com/");
WebElementsearch=driver.findElement(By.xpath("//*[@class='sec-input-box']/input"));
actions
.sendKeys(search,"霍格沃兹")
.sendKeys(Keys.ENTER)
.perform();
Thread.sleep(2000);
WebElementelement=driver.findElement(By.xpath("//*[@class='struct201102']//*[@vrcid='title.ba18e87']"));
//在元素element被找到后,进行截图
FileeleScreen=element.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(eleScreen,newFile("./image2.png"));
}

page source 记录

driver.page_source:用于获取当前网页的 HTML 源代码。

Python 实现

def test_page_source():
    # 实例化driver
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    # 打开百度首页
    driver.get("https://www.baidu.com")
    # 打印页面信息
    print(driver.page_source)
    # 输入霍格沃兹测试学院
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("霍格沃兹测试学院")
    # 点击搜索
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    time.sleep(3)
    driver.quit()

Java 实现

@Test
voidsogouScreen3()throwsIOException{
driver.get("https://www.sogou.com/");
StringpageSource=driver.getPageSource();
logger.debug(pageSource);

FileWriterpageSourceFile=newFileWriter("./pageSource.html");
pageSourceFile.write(pageSource);

}

总结

通过设立截图节点,日志打印,可以清晰看到程序运行时的情况以及出现报错时的页面信息。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-03 16:46
今天本来好好的,结果带教老师当着众人的面,直接大声叫我的名字,我过去还没站稳,劈头盖脸就是一句:“你这搞的什么玩意啊!没带脑子上班吗”那语气、那眼神,仿佛我做了什么十恶不赦的大事。我到底干啥了?不过是一些小疏漏,谁刚开始实习不会犯错啊?可她倒好,不仅不耐心指导,还这样贬低我。我满心的热情和期待,瞬间被浇了个透心凉🥶我也是爹妈疼爱的宝贝,来实习是为了学习、成长,不是来被人随意羞辱的!真心希望遇到的带教老师能多些耐心和善意,毕竟谁都有从零开始的时候,这样的“教育”方式,真的只会让人越来越没自信
longerluck...:前几年实习(初创公司),我们老板每月不固定会举行会议,叫我们几个实习生谈一下生活看到或听到的一些事情,并给出看法,当时我就正常讲了下我所见到的,没有个人看法,老板直接当着众人的面骂了我,那时候我真是感觉尴尬的要死(毕竟还有其他正式员工在)后面没待多久我就提出离职(因为当时我还负责一个项目),我leader叫我不要走,说给我涨工资,我反正觉得这种公司我是待不下去了,官味太重了,最后我还是跑路
实习吐槽大会
点赞 评论 收藏
分享
程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务