自动化工具 请问大家,自动化测试可以实现一个脚本测试全部平台吗?

小小Prcc · 2020年10月10日 · 最后由 TestOps 云层 回复于 2020年10月13日 · 2986 次阅读

我们软件都是报卡,每张报卡都由输入框、单选框、下拉选择框等组成,主要测试为输入项必填项验证、各输入项的逻辑是否正确。
现在使用的是 python+pytest,读取 excel 的测试用例数据,在测试框架里编写动作(动作大部分为输入内容,再点击保存按钮)
以下是实例,使用参数化执行了 13 条用例

领导现在认为各报卡都是类似的,就让编写一个脚本,可以读取所有类型数据并填写,不论是那张报卡,只需要读取 Excel 数据,然后交给对应的动作(点击、输入)去处理,不需要每份用例(报卡)都编写一个测试脚本。
所以想请教大家给点建议,我现在还完全没思路,谢谢

# 身份证号正确性验证 (022-034)
@user1ize('card_id,expect', Infectious_Fill().excel_data(22, 35)[0],
                         ids=Infectious_Fill().excel_data(22, 35)[1])  # 读取excel数据
def test_007(self, card_id, expect):
    self.act.edit_fill(self.ele.element()['有效证件号'], card_id)  # 输入证件号
    self.act.click_fill(self.ele.element()['保存'])  # 点击保存
    self.act.combination_fill('%Y')  # Alt+Y
    assert self.ele.message_box(expect) == expect  # 判断结果

共收到 7 条回复 时间 点赞

如果理解不错的话,你说的报卡应该是表单一类的输入框吧;你们领导的意思应该是去掉写死的元素查找规则,自动判断元素的类型来插入相应的数据;比如是输入框的,就直接插入一些文本进去,如果是下拉选择的,就随机选择第 N 个元素;这套规则写出来理论上就可以适配所有你说的报卡测试,不需要再加用例。

你们领导是不是说的关键字驱动呢?关于关键字驱动可以参考一下这位小伙伴的https://testerhome.com/topics/15266

guolong123 回复

对就是这样,因为我现在编码是将动作、元素硬编码,如果有变化就得修改,然后我想的是将元素映射到动作上,然后编写一套规则,读取元素的时候来自动调用相对应的动作

Goku 回复

谢谢,我看了一下有许多可以借鉴的地方,我再仔细研究一下🍻

把每种类型的动作定义成单个的 fixture,写 test 代码引用 fixture,不同类型引用不同 fixture,多个类型引用多个 fixture。

@ 小小 Prcc 加油

可以没必要,不要把自己的脚本做的太过复杂难以维护

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