CategoryOrProduct,NumberOfProducts
phones,0
music,5
cat,1
上面是我脚本使用到的数据,因为我使用了类方法,所以3个测试用例只打开一次浏览器,然而因为没对脚本进行等待机制,导致结果会出现5!= 1
@data(*get_data('testdata.csv'))
@unpack
def test_search(self, search_value, expected_count):
self.search_field = self.driver.find_element_by_name('q')
self.search_field.clear()
# enter search keyword and submit.
self.search_field.send_keys(search_value)
self.search_field.submit()
products = self.driver.find_elements_by_xpath("//h2[@class='product-name']/a")
expected_count = int(expected_count)
if expected_count > 0:
# check count of products shown in results
self.assertEqual(expected_count, len(products))
else:
msg = self.driver.find_element_by_class_name('note-msg')
self.assertEqual("Your search returns no results.", msg.text)
这是因为脚本运行过快,在搜索框刚输入search_value后提交,浏览器还没加载出来新的数据,脚本就已经自动接下来的代码,因此获取到的数据上一次测试用例的结果,最终导致后面两个测试用例报错。
.我的解决方法是在提交搜索字段后,使脚本休眠3秒,time.sleep(3),当然也可以用显式等待去控制,复杂的脚本推荐用显式等待,自己写的简单脚本感觉就没必要。
有什么不对的地方欢迎大佬们指正
自动化测试等待机制
本文探讨了自动化测试中因脚本运行速度过快导致的测试结果不准确问题,并提出了解决方案,包括使用休眠和显式等待来确保浏览器加载完成后再进行后续操作。
1712

被折叠的 条评论
为什么被折叠?



