静态网站可以做留言板,网站建设技术发展趋势预测,关键seo排名点击软件,信息流广告投放流程一、什么项目适合做自动化测试#xff1f;
软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁#xff0c;测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本#xff0c;而脚本的维护本身就是一个代码开发的过程#x…一、什么项目适合做自动化测试
软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本而脚本的维护本身就是一个代码开发的过程需要修改、调试必要的时候还要修改自动化测试的框架如果所花费的成本不低于利用其节省的测试成本那么自动化测试便是失败的。 项目中的某些模块相对稳定而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试而变动较大的仍是用手工测试。 项目周期较长 由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程需要较长的时间来完成。如果项目的周期比较短没有足够的时间去支持这样一个过程那么自动化测试便成为笑谈。 自动化测试脚本可重复使用 自动化测试脚本的重复使用要从三个方面来考量一方面所测试的项目之间是否很大的差异性如C/S系统和B/S系统的差异所选择的测试工具是否适应这种差异最后测试人员是否有能力开发出适应这种差异的自动化测试框架。
二、web 接口测试分类与测试要点
web 接口测试分类
服务器接口测试是测试浏览器与服务器的接口
外部接口测试典型例子是第三方登录
web接口测试测试要点
1、请求是否正确默认请求成功是200如果请求错误也能返回404、500等
2、检查返回数据的正确性与格式json是一种非常常见的格式
3、接口的安全性一般web都不会暴露在网上任意被调用需要做一些限制比如鉴权或认证
4、接口的性能web接口同样注重性能这影响用户的使用体验 三、基于python 自带的单元测试框架unittest 编写的接口测试框架特点
a . 支持简单易用的表格型语法使得可以用统一方式创建测试用例.yml / .json 文件
b . 提供HTML的简单易读的report 和日志结果文件
c . 平台和应用相互独立平台测试框架本身应用被测程序
d . 提供XML格式的输出文件非常容易进行持续集成
e . 支持创建数据驱动的测试用例
f . 支持代码驱动比如有关联的接口
g . 提供test case和test suite级别的setup和teardown
注
数据驱动因为数据的改变导致结果的改变参数化
数据的改变更新驱动自动化的执行从而引起结果改变
四、基于python 自带的单元测试框架unittest 编写的接口测试架构
分为三层分别是用例层、控制层、引擎层驱动层
用例层用例层支持 yml文件 json文件 用它来写用例的好处是灵活字段不需要像excel里面那样
控制层控制层用来发邮件与 产生报告
引擎层驱动层用python 自带的requests 模块调用接口封装了各种方法支持加cookie header 等的各种入参类型 五、完整的测试流程
A . 编写测试用例
直接使用Python自带的单元测试框架unittest来编写自动化测试用例利用其组织测试用例断言预期结果以及批量执行测试用例等功能可以很好的进行Web自动化测试的开发
代码参考个人git 仓库https://coding.net/u/chendai21/p/llq-code/git
B. 执行测用例 执行完毕后自动生成测试报告发送邮件
整个代码执行过程可以分成二个步骤 1.通过unittest框架的discover()找到匹配的测试用例以test_开头的脚本由BeautifulReport 的BeautifulReport 方法执行测试用例并生成最新的测试报告。
前置条件把BeautifulReport文件解压后拷贝到External Libraries—site-packages里面主要用于生成HTML测试报告以便生成一份通俗易懂的测试报告来展示自动化测试成果。 2.先封装sendmail类再定义send_report()函数发送指定路径下某文件的邮件将得到的最新测试报告的完整路径传给sendmail实现发邮件功能。
代码如下
import sys,os
BASE_PATH os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,BASE_PATH)
from common.tools import GetCase
from conf.setting import PY_PATH,REPORT_PATH
import unittest,BeautifulReport
def send_report(all_count, pass_count, report_fileNone):title time.strftime(%Y-%m%d %H%M%S) 接口测试报告content Dear all:本次接口测试共运行{all}条测试用例通过{ok}条失败{fail}条。测试报告详细见附件。.format(allall_count, okpass_count, fail(all_count - pass_count))# 发送测试报告m SendMail(MAIL_USER_INFO, MAIL_PASSWD, RECV, title, content, filereport_file)m.send_mail()def run():g GetCase()g.creat_py() #生成测试文件suite unittest.TestSuite() #创建测试套装all_cases unittest.defaultTestLoader.discover(PY_PATH,Test*.py) #读取测试用例[suite.addTests(case) for case in all_cases]report_html BeautifulReport.BeautifulReport(suite)report_filename {date}_TestReport.html.format(datetime.strftime(%Y%m%d%H%M%S))# 生成报告的文件名格式20180329190544_TestReport.htmlreport_html.report(filenamereport_filename, description用例描述, log_pathREPORT_PATH)send_report((report_html.failure_count report_html.success_count), report_html.success_count,os.path.join(REPORT_PATH, report_filename))
# BeautifulReport 生成的报告 用点就能看到它的属性了success_count、failure_count
# 实际上BeautifulReport是一个类 然后实例化后有对应的实例变量run()
生成的测试报告如下图 收到的邮件如下图 【整整200集】超超超详细的Python接口自动化测试进阶教程合集真实模拟企业项目实战