做网站常用哪种语言,wordpress主题取消,新闻软文推广案例,爱情树表白网页在线制作目录#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结#xff08;尾部小惊喜#xff09; 前言
接口自动化过程中… 目录导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结尾部小惊喜 前言
接口自动化过程中动态数据如何生成、动态数据与数据库数据进行对比并替换
应用场景
注册接口参数需要手机号手机号如何动态生成 生成的手机号如何与数据库数据进行对比 未注册的手机号如何替换用例数据中的手机号
动态手机号处理思路
①编写函数生成随机的手机号 ②将生成的手机号进行数据库查询 ③如手机号已存在就重新生成手机号 ④如手机号不存在就将此手机号替换测试用例中的手机号。
动态手机号处理
1、注册接口测试用例 在data/cases.xlsx中新建register工作簿填充注册接口用例其中mobile_phone是动态参数如果写死在自动化过程中会运行失败。
2、动态生成手机号 在common目录下新建文件helper.py用于编写辅助函数实现特定的功能(类似于HttpRunner中的debugtalk.py)。
实现批量生成11位手机号代码如下
import random
def generate_mobile():生成随机手机号phone 1 random.choice([3,5,7,8,9])for i in range(0,9):num random.randint(1,9)phone str(num)return phone
if __name__ __main__:print(generate_mobile())运行之后结果为
13889546979上面代码生成批量手机号比较简易如对手机号格式要求更精确可以自行按要求编写。
数据库查询并替换
1、replace()方法 描述 replace() 方法把字符串中的 old旧字符串 替换成 new(新字符串)
replace语法
str.replace(old, new[, max])old – 将被替换的字符串。 new – 新字符串用于替换old字符串。 max – 可选字符串, 替换不超过 max 次
replace实战例子 现有字符串如下 Str ‘coco爱读书’
现在将Str中的coco改为vivi。
Str coco爱读书
print(Str.replace(coco, vivi))输出结果如下
vivi爱读书2、编写注册接口用例
接下来的注册接口用例代码大多数代码其实和登录用例一样只是新增了查询数据库操作。
大致思路如下 ①从excel中读取用例数据 ②判断用例数据中是否包含#new_phone# ③如包含#new_phone#则随机生成手机号 ④如随机生成的手机号在数据库中存在则重新生成 ⑤如随机生成的手机号在数据库中不存在则用此手机号替换#new_phone#进行注册。
import json
import unittest
from common.db_handler import DBHandler
from common.helper import generate_mobile
from common.logger_handler import logger
from common.requests_handler import RequestHandler
from common.excel_handler import ExcelHandler
from config.setting import config
from libs import ddt
from middleware.yaml_handler import yaml_dataddt.ddt
class TestRegister(unittest.TestCase):# 读取register sheet数据excel ExcelHandler(config.data_path)data excel.read_excel(register)def setUp(self):self.req RequestHandler()self.db DBHandler(hostyaml_data[mysql][host], portyaml_data[mysql][port],useryaml_data[mysql][user], passwordyaml_data[mysql][password],databaseyaml_data[mysql][db], charsetyaml_data[mysql][charset])def tearDown(self):self.req.close_session()self.db.close()ddt.data(*data)def test_register(self,items):# 判断#new_phone#是否在用例数据中if #new_phone# in items[payload]:while True:# 使用自动生成手机号的函数mobile generate_mobile()# 从数据库中查询此手机号是否存在query_mobile self.db.query(select * from member where mobile_phone%s;,args[mobile])# 如果不存在就跳出循环if not query_mobile:break# 将#new_phone#替换为生成的手机号 items[payload] items[payload].replace(#new_phone#, mobile)logger.info(**30)logger.info(测试第{}条测试用例:{}.format(items[case_id],items[case_title]))logger.info(测试数据是:{}.format(items))# 访问注册接口获取实际结果res self.req.visit(items[method],config.hostitems[url],jsonjson.loads(items[payload]))# 断言预期结果与实际结果对比try:self.assertEqual(res[code],items[expected_result])logger.info(res)result PASSexcept AssertionError as e:logger.error(测试用例执行失败{}.format(e))result failraise efinally:TestRegister.excel.write_excel(config.data_path,register,items[case_id]1,8,res[code])TestRegister.excel.write_excel(config.data_path,register,items[case_id] 1,9, result)
if __name__ __main__:unittest.main()运行结果为
{code: 0,msg: OK,data: {leave_amount: 240.0,mobile_phone: 155********,}
}下面是我整理的2023年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜
生命不息奋斗不止每一份汗水都是青春的燃料。勇往直前超越自我追寻无限可能。别放弃坚持到底胜利属于那些敢于为之拼搏的人。挥洒激情开创辉煌
时光流转岁月更替唯有奋斗永恒。勇往直前不畏艰险拼搏出无限可能。披荆斩棘化压力为动力砥砺前行成就自我辉煌。坚守梦想绽放光芒努力奋斗收获终将属于你
人生犹如舞台奋斗是最精彩的演出。勇往直前超越极限用汗水浇灌梦想的花朵。不畏失败坚持不懈相信自己的力量创造属于自己的辉煌篇章。