线性编程02--自动化执行一条测试用例

使用线性编码自动化执行一条测试用例

# 初始化数据库
## 安装pymysql
pip  install  pymysql  --user
## 导入模块
import  pymysql
## 连接数据库
1)conn=pymysql.connect(host='数据库服务器IP', user='数据库用户名', password='数据库密码', db='被连接的数据库名')
    ①连接数据库(打开数据库,将数据库信息写入内存)
2)常见错误
    ①pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '192.168.75.12' (timed out)")
      <1>数据库服务器IP错误
    ②pymysql.err.OperationalError: (1045, "Access denied for user 'rot'@'TARENA' (using password: YES)")
      <2>数据库用户名或密码错误
    ③pymysql.err.OperationalError: (1049, "Unknown database 'exam23'")
      <3>数据库名错误

## 创建游标
1)cursor=conn.cursor() 
    ①数据库中数据进入内存的游标(表)中,用于一行一行的处理数据
## 指定sql语句
1)sql="insert/delete/update/select语句"
    ①sql是字符串格式
## 执行sql语句
1)rows=cursor.execute(sql)
    ①成功操作的行数在rows中
    ②常见错误
      <1>pymysql.err.IntegrityError: (1062, "Duplicate entry '2' for key 'PRIMARY'")
a)主键值2重复
## 提交数据
1)conn.commit()
    ①保存数据,同步游标数据到数据库
    ②只用于增删改
    ③查询数据时,不用提交
## 关闭数据库连接
1)conn.close()
# 执行一条测试用例
## 导入模块requests
## 指定接口地址
## 指定参数
## 发送请求,获得响应结果
## 比对响应结果
(1)接口的返回值是实际结果,用例中有预期结果
(2)比对响应结果就是看实际结果和预期结果是否匹配
### 比对方法
  1)in
    ①一般用于模糊匹配
    ②text/html、json都可以用,更常用于text、text/html响应类型的比对
    ③写法
    预期结果  in  实际结果
      <1>结果为True时,表示符合预期,测试通过
      <2>结果为False时,表示测试失败
  2)==
    ①text/html、json响应类型均可用,但更常用于json类型的比对
    ②写法
      预期结果==实际结果
      实际结果==预期结果
      预期结果==实际结果一部分

线性编程-测试一条用例

"""
    测试目的 测试成功登陆的用例
    接口需求
        接口地址:http://192.168.175.128/exam/login/
        方法:post
        参数:username,password
        返回值:text/html类型,登录成功
    用例    用户名   密码   预期
           test01 123456 登陆成功
    步骤:
        1.数据库初始化
        2.发送请求
        3.获得响应结果
线性模型  面向过程编程(按照顺序编写代码)
"""
import pymysql,requests
try:
    conn = pymysql.connect(host='192.168.139.137',user='root',password='123456',db='exam')
    cursor = conn.cursor()
    sql = "delete from user where username='test01'"
    cursor.execute(sql)
    # 先删除test01再重新加,是为了能多次重复运行脚本
    sql = "insert into user(id,username,password) values(2,'test01','123456')"
    cursor.execute(sql)
    conn.commit()
    conn.close()
    # 发送请求(执行一条接口测试用例)
    address = "http://192.168.139.137/exam/login/"
    data = {'username':'test01','password':'123456'}
    r = requests.post(address,data)
    # 输出响应结果
    print(r.text)
except Exception as e:
    print(e)

线性编程-测试一条用例

"""
编写正常注册接口的请求代码,输出结果但不检查结果正确性
    接口需求
    接口地址:http://192.168.175.128/exam/signup/
    方法:post
    参数:username,password,confirm,name
    返回值:json类型,注册成功
用例   用户名    密码    确认密码    返回值
      test02   123456  123456    {'Status': 1000, 'Input': {'Username': 'test02', 'Password': '123456'}, 'Result': 'Success', 'Message': '注册成功'}
"""
import pymysql,requests
try:
    conn = pymysql.connect(host='192.168.139.137',user='root',password='123456',db='exam')
    cursor = conn.cursor()
    sql = "delete from user where username = 'test02'"
    cursor.execute(sql)
    conn.commit()
    conn.close()
    url = "http://192.168.139.137/exam/signup/"
    data = {'username':'test02','password':'123456','confirm':'123456','name':'测试02'}
    r= requests.post(url,data)
    print(r.json())
except Exception as e:
    print(e)
posted @ 2021-11-05 16:26  暄总-tester  阅读(172)  评论(0)    收藏  举报