Python 实现的http接口自动化测试框架(实用改进版)

所需积分/C币:41 2018-07-31 14:11:39 585KB PDF
134
收藏 收藏
举报

Python 实现的http接口自动化测试框架(实用改进版),共享提供大家一起使用。
博客 软件性能测试交流群: 8、可按测试时间及给定文件名,生成对应时间的htm1可视化报告,报告内容包含测试耗时,测试执行用例总数, 执行成功、失败、出错用例数统计;还冇单个用例的执行情况(ID,用例名称,(自定义)接口名称,接口URL,接口参数, 运行结果等) 4、运行结果展示 project A 查看(V工具T)帮助 打开 共享打印刻录新建文件夹 名称 修改日期 N驱动 1 interface test automation 2015/11/1821:01文件夹 db config. ini 2015/11/17842配置设置 司步盘 世http_conf.ini 2015/11/1618:31配置设置 report20151118202134htm 2015/11/18 20: 21 Firefox HTML D. e repor+201511202213tml 2015/11/18 20: 22 Firefox HTML D. run_case_config. ini 2015/11/1820:22置设置 test report 测试总耗时:0n0n134n6 测试例数:2成功用例数:2失败用例数:0出错用例数:0 Http 方法 接口名称 请求URL 看求参数数据 测词方法 测试描测试|败 述结果原 测试登 1 GET login-normal /eppScrvcrintcrfacc 'mobile". 18259001552""password"."elUadc3yebabyabbeb6eU5/t2Ut8830" user/cgin? 'model":125"SN" 041552E97A96".osIn fo".android. C"T 陆,正Pa 2POSI modItyPaylwd_norma yapp serverinterfac newAy Pwd: 'e1DaCc39490a59abbe56e057f2Df0B3e, userid: 2910057590 contNewPaypwd: e10adc399baDyabbe5be0571201883e,pay Password 改变 norm Pass /user/modify Pay Pwd t:3949b59ab:56e0570[883H 5、文件与配置 1)http配置文件 用途:配置接口服务器IP,端口 httpconfig 「 DEFAULT [I1 hos=192.168.1.174 port =9101 2)用例配置文件 run case config.ini 博客 软件性能测试交流群: LRUNCASECONFIGI runmode =1 case id=[1, 21 说明: runmode:1-运行全部用例0—运行指定用例,case_id:list,存放 runmode-0时需要运行用例的用例 1,1D之间采用英文逗号分割 3)数据库配置文件 db config. ini [DATABASLII hos=192.168.30.80 port=3:306 user testacc passwd= test1231 db= testdb charset = utra [DATABASE2] host=192.168.1.161 user= vinheorline d=123456 db= yh yinheonline charset utf8 说明: DATABASEⅠ测试数据库 les tdb的配置, DATABASE2存放企业应用数据库服务器配置 6、测试接口样例 1.陆接口 用于用户登陆 接口方向 客户端->服务端 接口协议 接口地址:$ Idcp Home/ inter face/user/ login 接口协议:JS0N HTTP请求方式:GET 消息请求 字段名 数据类型默认值必填项备注 mobile string 手机号 password string 用户密码,采用MD5加密 model string 条件 于机型号,比如: I PHONE532 GB BLACK string 操作系统信总,比如i0s6.1.4 博客 软件性能测试交流群: 设备的序列号或唯一标识设各的 string 条件 编码。 说明:必填项为条件表示根据系统的安全级别做限制和约束。客户端和服务端做同步约定。 消息请求样例: ?mobile=13812315678&pa sword=xxsdfjddafd&mode l=iphones&osInfo=iOs 6. 1. 1&S\=011552E97A96 消息响应 服务器验证成功后,通过在 的 中设置 实现 机制。客户端收到 需要在后续的 请求中携带 信息,否则服务端将鉴权不通过,返回错误码 (无效的 息 字段元素定义如下 字段名 数据类型默认值必填项备注 userId 用户|) string 队头像(大) imgsmaI I String 头像(小) kanAme string 昵称 int 性别:0-男,1-女 address : tring 长居地 cited Int 是否否是是否否否是 cityName String 市名 pay Pas swordFlag int 支付密码标识:0-未设定1-已设定 成功时,返回JS0N数据包: de":0 nsg":"登录成功!", data": " userid":"1223434", imgBig: /uscr/img/001. png img Small:/user/img/001 small. png " nikename":"贪吃羊 sex 0). ddress":"深圳 博客 软件性能测试交流群: mobile 18259001552 vdsswuru ecec3949ua5sa5605720883e middel 041552C97A90 android.0 URL Parameter Key value Value Manago Send Preview Add to ro lectin Body Cookes 11) Headers (4 STATUS 20C OK TIME $1nIS Raw preview msg”:"登录或功 told, null diddles" null cnaMc": null "us出ld.2910357590 pay PasswordFlag: 1 ingSrall'-nul " ir IyB y".uu‖l 2.支付密码更改接口 会员修改基本资料时,可以对支付密码进行单独修改 接冂方向 客户端-〉服务端 ■接口协议 接口地址:$1 dcp home/ interface/user/ modi fyPay Pwd 接口协议:JSON HTTP请求方式:POST 消息请求 字段列表如 字段名 数据类型 默认值必填项备注 Userid 会员ID pay Pas sword rlI 原支付密码 newAy pwd : tring 是是是是 新支付密码 confNewPay Pwd String 确认新支付密码 消息请求样例: userid: 2345 pay Pas sword:3iu40i5u305031u5034530303 newPay Pwd": 10986546145106j1506j3015 " confNewPay Pwd":"40986546i45i064506j3045 博客 软件性能测试交流群: Normal Basic Auth Digest Auth OAuth 1.0 O No environment mIma http://192.168.1.174:9101/appserver/intarfaceuser/modifypayPwd FOST URL Parameter Key Value form-data x-iwww-form-urlenc cde 1f" userId":2918957596 2payPassword:el0adc3949b85sabbe5se057t20T883e JnewPayPwd" 10adc39493a59悉 je057f20f003 nconfNew Paypwd: el@ 1yba5yabbesbeU5/f20f88e"1 Send Save Review Add ta collection Body Cookies(1) Headers (4) STATUS 200 OK 28 ms Pretty Raw Previe ISON XMI msg":"袁密码修改成力” 4 7、数据库设计 1)创建数据库 CREATE DATABASE IF NOT EXIStS testdb default CHARACTER set utf8 2) estdb数据库中建立数据表 test data存放测试用例(接口)相关数据 CREATE TABLE test data case id INT NOT NULL UNIQUE #用例1D,唯 httpmethodVarcHar(5)noTNull http方法(POST,GET request name VARCHAR (30) #自定义接口名称建议格式:接口名-测试简单说明 request url VARChar(200) NOT NULL,#接∏URL request param VARCHAR(1000) NOT NULL,#接口所需的全部或部分参数- python字典形式的字符串 test method VARCHAR(50) NOT NULL #测试方法,一个测试用例对应一个方法 tesτ desc varchar(2000) NOT NULL#测试描述一主要描述这个用例的测试点、测试目的 博客 软件性能测试交流群: pre condi lion dala存放完成接口运行前置条件所需的数据 CREATE TABLE pre condition data case id INt NOT NUlL #用例ID step INT NOT NULLa #执行该用例TD需要的第一步、第一个前提条件的 step id request url VaRCHar(200) NOT NUL,#接∏URL request param VARCHAR(1000) NOT NULL,#接口参数- python字典形式的了符串 other VARCIIAR(1000) #保留字段,可能是执行用例需要预先执行的sql语句等 lest desc varchar(200)NO^NUL,#数据描述一描述这条数据用途 PRIMARY KEY(case id, step ); 说明:接口的前提条件往往是另一个接口的预先执行、或预先执行后生成的数据,也就说前一个接口的输出是后 一个接口的输入,所以这里主要设计为存储接口ur1和接口参数,供预先执行前一个接口时使用 test result存放测试结果 CREATE TABLE test result case id INT NOT NULL UNIQUE #用例ID httpmethodVarChar(5)NotNulL thttp方法(POSTGET request name VARCHAR(30) #自定义接∏名称 request url VARCHAR(200) NOT NULI,#接口URL request param VARCHAR(100) NOT NULL,#接口所需的全部参数 python字典形式的字符串 lest me thod varchar(50) NOT NULL,#接口测试方法 test desc varchar(2000) NOT NULL,#数据描述一描述测试目的 result VARCIIAR(20) NOT NULL #测试结果 reason VARCHAR(20) #测试失败原因 8、测试用例、测试数据准备 #测试登录用例数据 INSERT INTO test data( case id httpmethod request name, request url request param test method test desc) VALUES (1 博客 软件性能测试交流群: login- norma1’, app server/interface/user/login? {" mmobile":"18259001552", password": e10adc3949ba59abbe56e057f20f883e " mode l":"小米25", SN":"041552E97A96″, os Info:android.0 test login normal 测试登录,正向 #测试修改支付密码的前置条件数据准备 INSERT INTO pre condition data( case id step, request url, request param other test desc VALUES (2 /appServer/interface/user/login? {" mobile":"1825900152, password: elOadc3949ba59abbe56e057f20f883e " sINto":" android4.0″:’, 测试修改密码步骤1:登录 #测试修改支付密码数据准备 INSERT INTO test data( case id httpmethod request name request ur request param, test me t test desc) VALUES (2 POST modify Pay Pwd normal app Server/interface/user/ modifyPayPwd userid":2910057590 博客 软件性能测试交流群: payPassword": e10adc3949ba59abbe56e057f20f883e newPayPwd. el0adc3949ba59abbe56e057f20f883e confNewPayPwd": e10adc 3949ba59abbe 56e057r20r883e" test chpasswd normal 测试更改密码,正向 9、模块与类、函数设计 a)classconfighttp.coNfighttp 配置要测试接口服务器的ip、端口、域名等信息,封装htp请求方法http头设置等 b)class getdb. GetDB 负责配置测试数据库,应用数据库服务器的ⅳ、端∏,用户名,密码等信息,返回数据库连接 c) class conf'igrunmode. ConfigRunMode 负责配置并获取运行模式,运行用例ID d) class globalconfig Global 负责全局初始化配置 ss runner. DalastrucL 定义结构体,于接收从测试数据库 testdb中 test data表读取的测试数据,记录要写入测试报告的数据 ss test interface case. TestInterfaceCase, test interface case, ParametrizedTestcase 负责管理测试用例对应的测试方法,相关的数据处理 g) runcase. RunCase 负责运行测试用例及相关的数据处理 h) htmlreport. HtmlReport 负责生成测试报告 程序运行入口文件 10、代码实现 oclasscongfighttp.Confighttp #!/usr/bin/env python 并一*一C0ding:utr-8-*一 author = shouke import urllib request importhttpcookiejar

...展开详情
立即下载
限时抽奖 低至0.43元/次
身份认证后 购VIP低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
Python 实现的http接口自动化测试框架(实用改进版) 41积分/C币 立即下载
1/0