一、软件测试技能
初级:
1.操作系统:linux (常用命令,日志,搭建环境)
2.数据库:增、删、改、查,子查询,多表查询,存储过程和索引
3.测试基础:测试理论,测试方法,测试思维,测试文档
4.项目实战:项目类型(新能源、医疗、互联网医院、金融理财、垂直电商),熟悉项目,开展测试
5.APP/小程序,安装,卸载,卸载,升级,网络,中断测试,耗电,推送,Monkey测试
6.抓包:F12,Fiddler,Charles等
7.接口测试工具:Jmeter,Postman,Apifox
中级:
自动化测试:脚本熟练(装饰器),能够封装轻量级的框架,
接口自动化:统一请求,接口关联,数据代码分类,断言,数据驱动,日志。
性能测试:有自己的性能测试思维,性能文档,性能环境,能够压测和发现性能问题。
高级:
技能+管理
二、必备四类问题
功能测试:
测试点(随机场景或项目场景)、项目测试流程(迭代周期,立项到测试报告)、给你一个项目如何开展测试(多个维度考虑)
接口测试:
接口测试流程(细化,入参、出参)、结合项目问(真实用例)、其它:协议、状态码、cookie\sesion,token
自动化测试:
Web(框架,框架分层,如何保证用例/UI稳定性,使用到的python库),接口(框架,用例编写,接口关联怎么实现的,数据和代码分离,断言)
性能测试:
流程,指标(并发数,资源利用率,响应时间,TPS,事务成功率),场景,性能问题
三、自动化测试问题
项目-自动化-性能和接口-数据库或linux-其它。
1.你们公司自动化测试是怎么做的?
范问题。
a.项目组做自动化之前需要做可行性分析,适不适合做自动化,包括自动化实施到的程度,团队的技能能力能不能支撑,项目时间是否允许。
b.调研框架,对比,PPT演示,httprunner, meteshere, robotframwork, 自己搭建。
c.在项目中实施,主要包括:
编写自动化测试的计划
自动化测试用例
由谁来封装框架,谁负责哪些模块的用例
使用jenkins来做无人值守测试
后期维护脚本
d.自动化流程化,文档化(自动化框架的使用文档以及用例规范等),不断完善,推广到其它项目。
2.你们自动化测试框架是如何搭建的?
2.1自动化组员
a.自动化测试框架的文件架构
见pytest测试框架之基本用法一文
b.封装的细节如何实现
请求的工具类(统一请求的封装):减少冗余的代码,全局的事情,比如异常处理,日志监控。
接口关联:框架支持两种提取方式:re正则表达式和jsonpath表达式。然后在上一个接口使用re或jsonpath提取我们需要的变量,然后保存到extract.yaml文件中,然后在下一个接口通过read_yaml读取extarct.yaml中的值从而去使用。
数据驱动:为了接口的正反例而存在,一个接口有十几个到几十个的正反例,通过taml测试用例通过模块和子模块文件夹进行分类,然后一个yaml对应一个接口,然后再通过接口中多组数据来实现正反例,然后在用例里面通过pytest.mark.parametrize装饰器来读取yaml从而实现数据驱动。
断言封装:直接使用python原生的assert.
2.2自动化组长/leader
a.自动化测试框架的文件架构
见pytest测试框架之基本用法一文
b.封装的细节如何实现
请求的工具类(统一请求的封装):减少冗余的代码,全局的事情,比如异常处理,日志监控。
接口关联:框架支持两种提取方式:re正则表达式和jsonpath表达式。在上一个接口的yaml用例中使用extract标记以及存入四个变量(变量名,返回数据,表达式,下标),然后框架就能自动解析和提取。在下一个接口,通过$(read_yaml(token))的方式调用。
数据驱动:
断言封装:
3.接口自动化中接口关联是怎么处理的?
4.自动化中数据驱动是怎么做的?
5.接口自动化有多少case?覆盖率是多久?执行完需要多久?
根据项目大小决定,一般小项目100-400接口,一个接口大概十几到几十个用例。
覆盖率:接口80%-90%, web:10%-30%
执行多久:一个接口用例一般是指100-200ms, 接口自动化,10-30mins左右。
6.如何保证(提升)自动化测试的稳定性?(web)
体现:元素定位、用例依赖
元素定位:a.全部使用xpath相对路径表达式; b. 元素定位使用显示等待+隐式等待综合的方式避免元素未加载完成;c.框架中加入用例失败重跑机制;d.用例执行前和执行后对数据进行还原;e.尽量避免用例依赖。