UI 测试的某个列表,可以点击列表最后一列的按钮进行删除。
当我随机选择第 n 行,进行删除,接下来校验该行有没有被删除,操作如下:
列表信息行数少了一行,包括页码的显示总条数也少了 1。
删除前的那一行,再次获取该行,该行的文本信息与删除前获取的不一致了。
比较难搞的是,这个列表可以存在相同值, 即列表可以存在文本信息一样的多行,如下所示:
column_A | column_B | column_C | column_DEL |
---|---|---|---|
a | b | c | 删除按钮 |
a | b | c | 删除按钮 |
a | b | c | 删除按钮 |
a | b | c | 删除按钮 |
这个列表没有索引,如果删掉了第三行,如何知道第三行被删掉了呢,如果删掉的是第四行呢?
请问有什么方法校验其中某一行被正确删除了吗?
按照你能达到的最小条件去查询,比如查询结果是两条。删除一条后,再用同样的条件查询,预期出来的结果就是一条。
查数据库,第 3 行删掉了,实际上在表里是这条数据的某个字段改变了。如果从 ui 校验,准确率也不是很高,万一前端删除时传错了字段,点删除时没显示,刷新下又有了尼
这个 如果是我的话 我就改一下数据喽
测试需要良好的设计,包括设计测试数据,4 楼给出的建议就是这个思想理念。UI(自动化) 测试不可以查数据库,引用虫师的一句话,“数据库不是你想查,想查就给你查”,原文是https://www.cnblogs.com/fnng/p/7494682.html
按照你能达到的最小条件去查询,比如查询结果是两条。删除一条后,再用同样的条件查询,预期出来的结果就是一条。
这就涉及到你的测试用例设计了。如果要精确一点,就是 F12 看一下具体记录的信息,比如 ID 什么的,确定点击删除是不是删掉正确的记录。
不过这个建议在手工测试的时候去做,自动化测试主要是回归测试,不需要到这种级别。
加多一列,就叫 sign 吧
sign 由每一行的文本内容 + 当前行的位置索引拼起来的字符串,计算该字符串的 MD5 值,该 MD5 可以作为行的唯一索引值
所以删除只要判读该 MD5 值在 sign 集合中已经不存在了即可
简单又高效