Selenium web 自动化定位元素,有些功能或菜单是通过权限控制的,存在不确定性,怎么处理比较好呢

sunzhang · 2023年09月11日 · 最后由 安东尼 回复于 2023年09月13日 · 6169 次阅读

跪求大佬指点!!!

问题背景:在做项目的 web 自动化中,遇到很多页面的功能是灵活配置的,不是所有的账号都有这个权限,

例如:我做的是医院的系统,每个病区,甚至每个账号,对于同一个菜单里面拥有的功能不一样,通过病区和账号来控制功能权限

问题:那么我们做自动化的时候是指定环境,指定账号来做元素定位?还是通过获取的权限来灵活获取需要的元素?

有没有更好的方式来处理这种权限控制呢

共收到 12 条回复 时间 点赞

这个还是很好解决吧,某个人员拥有的权限肯定是存在数据库的,那执行前加一条 sql 就好了

用例和账号加上权限 Tag?

不是每个元素都定位好,然后需要那个元素直接拿不就好了吗😂

这不应该是正常的测试内容吗,不同的账号处理不同的操作权限,除非是你想一个账号把所有操作流程全串下来,那你可以配置一个全权限类似超级管理员的账号。

肯定要以账号维度去测,你怎么可能用一个账号一种角色,去测试所有角色权限?
比如你有 10 种角色,对应 10 种权限,那么你就要创建 10 个账号来测,而且自动化要求是稳定的,只需要重复这 10 个账号,保持一致的期望结果。

挑几个有代表性的做自动化就行,不可能面面俱到;
想面面俱到,就每种配置都写呗。

不做菜单列表的断言的话,菜单列表的 div 肯定是确定的,然后选择这个列表下 text='你想要的好了'。需要根据不同的账号,做菜单列表的判断的话,考虑设计一个枚举类比较比较优雅

权限不同肯定是登录当前有权限的账号去获取对应的元素来写脚本了,独自修改角色权限是跟需求相悖的,你想一个角色全流程测下来,那其他角色对应的权限岂不是漏测了吗?

仅楼主可见
文一紫 回复

his 的分支系统

这必然要分账号来分别测试啊。比如账号 A 登录后打开某个页面,应该有哪些功能入口 (如菜单上的选项),应该没有哪些入口,要做断言校验啊。

遇到当前账户权限不够的情况,那就切换有权限的账号继续执行,用完就切换回来呗。

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