当前位置: 代码迷 >> 综合 >> python + selenium自动化测试
  详细解决方案

python + selenium自动化测试

热度:83   发布时间:2023-09-05 17:52:25.0

最近刚完成网站项目的自动化测试,来这里做个小结。

前提条件:1 网站手工测试已经完成,并且已经上线。

                  2 功能模块,页面元素 基本保证不再有大的变动

计划:

1 确认自动化测试范围:(即哪些功能,哪些页面需要做自动化)

          我个人认为符合以下条件的,适用于自动化测试:

                  1 重要的功能页面(因为不是重要的功能 我们平时也很少做回归测试,做自动化测试意义也不大)

                  2 常用的功能页面(因为不是常用的功能页面 做自动化脚本研发 有点浪费资源)

                  3 近期内没有改动或者改动较小的页面(假如这个功能很重要,用户也常用,但是这个页面近期有大的改动,我建议                      不要做自动化脚本编写,因为有可能我们辛辛苦苦写出来的脚本对于新版功能页面来说 不适用或者 自动化测试脚本                      需要大量改动,这就有点........浪费精力)

2 分析需求,拆分到功能点

       2.1把需要测试的功能 范围列出来,放到excel中,如下图:

       python + selenium自动化测试

      2.2 根据以上的功能进行需求分析整理,尽量拆分细一点,可以帮后面的测试用例省下不少力气

             举个栗(例)子:登录功能

             项目中登录方式分为两种:第一种:用户名(手机号)+密码登录。第二种:手机号+动态验证码登录

             先说第一种登录,我的分析过程是:

                 1 我需要他正常的数据(正确的手机号+正确的密码)可以登录成功。

                 2 我什么都不输入,直接点击登录。这里不仅要看提示信息有没有弹出,最好再f12看下有没有向后台发送请求,最好                      在js中做为空校验,如果是空的,就不要向服务端发送请求,减少服务器端压力

                3 只输入手机号,或者只输入密码,点击登录。这里不仅要看提示信息有没有弹出,最好再f12看下有没有向后台发送                     请求,最好在js中做为空校验,如果是空的,就不要向服务端发送请求,减少服务器端压力

                4 输入正确的手机号+错误密码,点击登录。

                5 输入未注册的手机号+(已经存在的)登录密码

                6 输入未注册的手机号+错误登录密码

                7 输入错误格式的手机号 和 错误格式的密码。这里不仅要看提示信息有没有弹出,最好再f12看下有没有向后台发送                       请求,最好在js中做为空校验,如果是空的,就不要向服务端发送请求,减少服务器端压力

                8 点击短信验证码,获取验证码之后,选择 账号密码登录,输入 手机号+密码,点击登录

                9 点击短信验证码,获取验证码之后,选择 账号密码登录,输入 手机号+验证码

            具体需求分析如下:

             python + selenium自动化测试

3 根据分析的需求点,设计每一个测试点的测试数据

python + selenium自动化测试

4 功能做完了,我们就开始设计 业务流程了,毕竟 业务流程才是用户的行为轨迹

    业务流程的设计,我是把以上的功能串起来,不能包含太少的功能,也不要包含的太多。尽量每一个业务流程包含不同的功能点,太相同的业务流程测试意义也不大。对此 针对我的项目  我设计了如下业务流程,这是excel版本,只列出来业务流程,和所包含的页面,涉及到的功能点,具体每一步暂不在这里提现

  1  注册流程

  2 登录,商品详情页,点击购买,下订单页面,进入未支付页面

  3 首页,直接点击购买,合同页面登录,下订单页面,进入未支付页面

  4 登录,未支付订单页面,选择不同的支付方式(账户余额,银行卡,账户余额+银行卡,是否使用基金),详看后面流程图

python + selenium自动化测试

5 业务流程有了,接下来就是对业务流程详细步骤的描述,我们可以用思维导图画出来。

     注意:业务流程的数据我觉得使用正常数据就行,不用测试异常,异常留给单个功能点的测试。

     使用思维导图的好处:思维导图可以具体到每一步,包括页面元素的定位,后期代码就跟着思维导图走,不需要再在页面做定位。利用思维导图把每一个流程画清楚,后期 如果有需要额外添加的功能,或者 需要修改的流程,或者  翻看这段代码是干什么的时候,直接看思维导图,不用看代码再理逻辑了,前提是  必须保证 思维导体和代码完全一样

       另外,遇到的问题,学到的新知识点可以罗列出来。每一个流程的特叔需要标注的地方,我们都可以在流程图用颜色做标记。后期学习也很重要的。

6 接下来 就开始 我们代码了

    6.1 先写单个功能点(使用常量),测试成功之后,把常量换成csv文件读取数据,测试成功。

    6.2 再写业务流程(使用常量),测试成功之后,把常量换成csv文件读取数据,测试成功。

    6.3 使用unittest2框架,将6.1转化为 testcase,6.2转化为 testsuite。里面的if判断换为断言函数。进行测试

    6.4  升级6.3,将测试结果以html格式生成测试报告

    6.5  放入jenkins内,设置脚本,设置触发器,定时执行(这一步 我还没做,后期补充)

7 总结问题,具体看思维导图

    学到的新内容:

    7.1 如何利用unnitest执行多组数据的业务流程测试

    7.2 Web selenium点击<a>的href,点击打开失败

    7.3 输入框输入新的内容,之前的内容clear() 清除不掉

写完了,以上  就是我python+selenium+unittest的过程,具体下载百度网盘文件。

   

 

 

 

 

  相关解决方案