Selenium 如何判断可以存在相同值的列表中的某一行被删除了?

醋精测试媛 · 2020年12月04日 · 最后由 海棠不是朵朵 回复于 2020年12月07日 · 3440 次阅读

UI 测试的某个列表,可以点击列表最后一列的按钮进行删除。

当我随机选择第 n 行,进行删除,接下来校验该行有没有被删除,操作如下:

  • 列表信息行数少了一行,包括页码的显示总条数也少了 1。

  • 删除前的那一行,再次获取该行,该行的文本信息与删除前获取的不一致了。

比较难搞的是,这个列表可以存在相同值, 即列表可以存在文本信息一样的多行,如下所示:

column_A column_B column_C column_DEL
a b c 删除按钮
a b c 删除按钮
a b c 删除按钮
a b c 删除按钮

这个列表没有索引,如果删掉了第三行,如何知道第三行被删掉了呢,如果删掉的是第四行呢?

请问有什么方法校验其中某一行被正确删除了吗?

最佳回复

按照你能达到的最小条件去查询,比如查询结果是两条。删除一条后,再用同样的条件查询,预期出来的结果就是一条。

共收到 16 条回复 时间 点赞

查数据库,第 3 行删掉了,实际上在表里是这条数据的某个字段改变了。如果从 ui 校验,准确率也不是很高,万一前端删除时传错了字段,点删除时没显示,刷新下又有了尼

这个 如果是我的话 我就改一下数据喽

Elsie 回复

就是要测这种情况呀,万一删了相同的行但是删的是另一行呢

我是说你把你要删的那一行改一下数 然后删掉 这样你就知道你删的对不对了 或者改他的上下行也行

Elsie 回复

也对哦,刚刚和前端沟通,给元素加了一个 id,( •̀ ω •́ ) y

或者 1 楼的更简单 看 id 删了的 id 是不会再补的

Elsie 回复

但是不知道去数据库查,和 ui 自动化测试一起,合不合适,因为 ui 是针对 ui 的,数据库最好和接口测试一起。

没有合不合适 只有需不需要 😂

测试需要良好的设计,包括设计测试数据,4 楼给出的建议就是这个思想理念。UI(自动化) 测试不可以查数据库,引用虫师的一句话,“数据库不是你想查,想查就给你查”,原文是https://www.cnblogs.com/fnng/p/7494682.html

按照你能达到的最小条件去查询,比如查询结果是两条。删除一条后,再用同样的条件查询,预期出来的结果就是一条。

Jerry li 回复

对,这才是正确的测试设计

Jerry li 回复

谢谢您的建议。会不会出现以上可能性,但是删的是另一条呢,如题中举的例子所示。

Thirty-Thirty 回复

我在测试设计上还非常的不足,之后会在这方面多加注意

这就涉及到你的测试用例设计了。如果要精确一点,就是 F12 看一下具体记录的信息,比如 ID 什么的,确定点击删除是不是删掉正确的记录。
不过这个建议在手工测试的时候去做,自动化测试主要是回归测试,不需要到这种级别。

Jerry li 回复

好的。谢谢。

加多一列,就叫 sign 吧
sign 由每一行的文本内容 + 当前行的位置索引拼起来的字符串,计算该字符串的 MD5 值,该 MD5 可以作为行的唯一索引值
所以删除只要判读该 MD5 值在 sign 集合中已经不存在了即可
简单又高效

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册