可行性分析

开展自动化测试的时间点很关键,需要在系统已经过多版本的系统测试,达到稳定之后。

自动化测试的时间节点是功能测试中冒烟测试全部通过且主功能遗留bug数量为0,测试用例中的一级功能不允许遗留测试等级为严重及以上的bug,二级用例中可以遗留几个(一般<=5个)严重程度为一般的bug,在这个标准的前提下,我们视系统基本达到稳定,可以进入到自动化测试环节。

项目组织架构

images-5.1.8.png

技术难点

经过多轮的手工测试,且迭代基本稳定之后,可以开展自动化测试,本项目的模块基本都可以是实现自动化测试。其中,有一个需要注意的问题,即验证码的获取和输入。 由于验证码的生成是随机生成的字符,因此在实际的测试环境中我们可以设置万能验证码或者通过修改配置文件,把验证码删掉。具体操作如下: 【把iwebshop验证码改成万能验证码】 1)进入到iwebshop安装目录, 如:C:\xampp\htdocs\iwebshop\lib\core\util 2)打开‘captcha_class.php’文件 3)找到‘GetRandomCaptchaText’方法(改成‘123456’)

images-5.1.9.png

4)效果

images-5.1.10.png

 

环境搭建

预备工作

python 3.5及以上版本 pycharm 浏览器(推荐Firefox和Chrome) Windows7/10 Selenium 2.0版本 (1)setuptools (2)pip (3)selenium2.0版本(2.48.0)

安装Python

下载地址:https://www.python.org/downloads/release/python-371/ 下的Windows x86-64 executable installer

images-5.1.11.png

安装pycharm

下载地址:http://www.jetbrains.com/pycharm/download/#section=windows

images-5.1.12.png

 

安装Firefox

推荐Firefox35.1.0版本

images-5.1.13.png

安装完成后需禁止火狐的自动更新 菜单--选项—>高级 勾选不检查更新,其他选项不勾选

安装setuptools

下载setuptools-40.5.0.zip https://pypi.org/project/setuptools/ 1、解压到Python安装目录d:\software\python\scripts下,进入到setuptools文件夹,按住shift键后右击,在此处打开命令窗口 2、输入python setup.py install 回车, 3、安装成功后。新开一个命令窗输入easy_install回车,没有提示easy_install不是内部或外部命令,则安装成功,如果提示了,检查环境变量 2.2.2.6安装pip Pip是通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能 下载pip压缩包pip-18.1.tar.gz 地址:https://pypi.org/project/pip

安装Selenium

说明,在安装selenium时,前提是Python安装完毕且能正常运行 安装:在命令窗口输入:

pip install selenium==2.48.0

卸载:

pip uninstall selenium

查看:

pip show selenium

用例设计

自动化测试流程其实跟手工测试流程差不太多,要先编写测试用例,只是被叫作自动化测试用例而已。先设计好自动化测试用例,再严格根据设计完成的测试用例编写测试脚本,这是一种规律、一个过程。此过程产出物为《自动化测试用例》。 自动化测试用例设计和手工测试用例设计是有明显区别的,手工测试用例是从无到有的过程,而自动化测试用例不是的。自动化测试用例是有参考物的,它就是手工测试用例。它有时候可以直接拿来用、有时候需要稍加修改,在此把整个自动化测试用例设计过程分为 3 步: 筛选手工测试用例的过程。 转换手工测试用例的过程。一般转换要素无非两种,一种就是测试用例的格式和规则,另一种就是优化自动化测试业务流程。自动化测试业务流程和手工测。试业务流程还是有一定区别的,自动化测试业务流程更精简、严格。 新增&补充自动化测试用例的过程。 设计样例如下所示:

images-5.1.14.png

测试脚本开发

通过可行性分析和用例设计后,接下来需要做一个demo ,等待 demo 完成后,可以再次通过分析自动化测试工作能否顺利地开展下去,因为 demo 已经是一个实体案例,所以,可以完全通过透析 demo 来发现是否存在技术上的致命问题。通常在 demo 完成之后,有经验的自动化测试工程师或组长就能对这个项目的自动化测试工作有一个大体的把握了。一旦通过了抽样 demo 分析,自动化测试就可以展开了。关于 demo 的选取,一般直接选择冒烟测试用例(大冒烟)写成测试脚本后执行,检查脚本是否能够成功运行通过,已设计的测试点是否全部执行到即可。 设计样例如下所示:

images-5.1.15.png

images-5.1.16.png

无人值守测试

测试脚本的执行主要包含如下内容:

  • 测试环境的管理配置

  • 测试脚本配置

  • 测试脚本的执行

  • 测试异常中断处理和恢复

    通过代码中断言的处理实时抓取日志,截取错误图片。断言部分的代码和截取的错误图片如下图所示:

    images-5.1.17.png

    images-5.1.18.png

     

自动生成测试报告

执行完自动化测试脚本后,自动生成一份测试报告。 测试报告的生成方法。 Export Test Results (UnitTest 自带) HTMLTestRunner(第三方模板) Export Test Results 执行测试用例 在控制台选择导出测试结果(export test results) 设置报告的名称和目录,点击确定即可。

images-5.1.19.png

HTMLTestRunner 步骤:

  1. 复制HTMLTestRunner.py文件到项目文件夹

  2. 导入HTMLTestRunner、UnitTest包

  3. discover加载要执行的用例

    discover=unittest.defaultTestLoader.discover(test_dir,pattern="test*.py")
    

     

  4. 设置报告生成路径和文件名

    file_name=file_dir+nowtime+"Report.html"
    
  5. 打开报告

    with open(file_name,'wb') as f:
    
  6. 实例化HTMLTestRunner对象:

    runner=HTMLTestRunner(stream=f,[title],[description])
    

    参数说明: (stream:文件流,打开写入报告的名称及写入编码格式) ( [ ],为可选; title为报告标题,如XXX自动化测试报告 description:为说明;比如操作系统、浏览器等版本 )

  7. 执行:

    runner.run(discover)