IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 自动化测试 -> 正文阅读

[开发测试]自动化测试

自动化测试工具必备

1.Python解释器安装

官网地址:https://www.python.org

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.PyCharm集成开发工具

官方地址:https://www.jetbrains.com/pycharm

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Python中的对象,变量,函数

1.对象

所有的数据类型都是对象
1.字符串
2.数字:整数,小数
3.列表,字典
4.函数,类,模块
print(3)
print(3+1)
print('3+1')
print("3+1")
print('''3+1''')

运行结果

3
4
3+1
3+1
3+1

2.变量

变量的命名:
一般以字母(大写,小写)开头
后面可以使用下划线_或者使用数字
大小写敏感
不能与关键字相同
不要与内置函数相同
a=3
print(a)
a="hello world"
print(a)
a=100+34
print(a)

3.函数(function)

def playfootball():
	print("拿起足球")
	print("拿起足球1")
	print("拿起足球2")
	print("拿起足球3")
#调用函数
playfootball()

函数的参数

	定义参数时的命名规则-和变量一样
	可以是一个,也可以是多个
	函数体里面像变量一样使用参数
	调用函数时,传入对应参数的个数
def foot(x):
	print(x+3)
foot(3)

def foot2(a,b):
	print((a+b)*5)
foot2(3,4)

接口测试化自动化

1.使用python语言可以实现WEBAPI接口测试
2.根据测试用例

 构造出相应的HTTP请求,发送给服务端
 内置库:Httplib,urllib2
 第三方库:urllib3,requests,pyCurl
 接受并检查响应信息

在这里插入图片描述
3.搭建测试环境
1.搭建springboot脚手架
在这里插入图片描述
构建项目包名称
在这里插入图片描述
导入maven包
在这里插入图片描述
创建数据库
在这里插入图片描述
建好后,将resources下的application.properties改名 application.yml
写上接口,数据库的连接和mybatis逻辑

server:
  port: 8082

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/bnzj?serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis:
      mapper-locations: classpath:mapper/*Mapper.xml
      type-aliases-package: com.bnz.pojo

创建*mapper.xml
在这里插入图片描述
UserMapper.xml

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

<mapper namespace="com.bnz.dao.UserDao">
    <select id="findAll" parameterType="com.bnz.pojo.User" resultType="com.bnz.pojo.User">
        select * from user
    </select>

    <insert id="save" parameterType="com.bnz.pojo.User" keyProperty="id">
    insert into user values (#{id},#{name},#{age})
    </insert>

    <update id="update" parameterType="com.bnz.pojo.User" keyProperty="id">
    update  user set id=#{id},name=#{name},age=#{age}
    where id = #{id}
    </update>

    <delete id="delete" parameterType="com.bnz.pojo.User">
    delete from user where id=#{id}
</delete>


</mapper>

pojo包下User类

package com.bnz.pojo;
import lombok.Data;
@Data
public class User {
    private Integer id;
    private String name;
    private Integer age;
}

dao包下UserDao接口类

@Mapper
public interface UserDao {
    List<User> findAll();

    Integer save(User user);

    Integer update(User user);

    Integer delete(Integer id);
}

service下的UserService接口类


public interface UserService {

    List<User> findAll();

    Integer save(User user);

    Integer update(User user);

    Integer delete(Integer id);
}

service下的UserServiceImpl接口实现类

@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;
    @Override
    public List<User> findAll() {
        return userDao.findAll();
    }

    @Override
    public Integer save(User user) {
        return userDao.save(user);
    }

    @Override
    public Integer update(User user) {
        return userDao.update(user);
    }
    @Override
    public Integer delete(Integer id) {
        return userDao.delete(id);
    }


}

controller包下的UserController

@RestController
@RequestMapping("user")
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("findAll")
    private List<User> findAll(){
        return userService.findAll();
    }

    @PostMapping("save")
    public String save(@RequestBody User user){
        Integer save = userService.save(user);
        if(save != 0){
            return "保存成功";
        }else {
            return "保存失败";
        }
    }

    @PostMapping("update")
    public String update(@RequestBody User user){
        Integer update = userService.update(user);
        if(update != 0){
            return "修改成功";
        }else {
            return "修改失败";
        }
    }
    @DeleteMapping("delete/{id}")
    public String Delete(@PathVariable Integer id){
        Integer delete = userService.delete(id);
        if(delete != 0){
            return "删除成功";
        }else {
            return "删除失败";
        }
    }


}

2.编写自动化测试
1.findAll接口测试

import requests
#漂亮打印
from pprint import pprint
#发起Http请求
#搜索表中所有数据
res=requests.get('http://localhost:8082/user/findAll')
#打印状态码
print(res.status_code)
# 打印消息体
pprint(res.json())

在这里插入图片描述
2.save保存json接口测试

a = {"id":"4","name":"yzh","age":"20"};
url = "http://localhost:8082/user/save/"
#消息头指定
headers = {'Content-Type': 'application/json;charset=UTF-8'}
#发送post请求 json参数直接为一个字典数据。
res = requests.request("post",url,json=a,headers=headers)
print(res.status_code)
print(res.text)

在这里插入图片描述
3.update修改json接口测试
4.delete删除接口测试

Python自动化程序读写数据库

import MySQLdb
# 打开数据库连接
db = MySQLdb.connect("localhost", "root", "123456", "bnzj")
# 创建游标对象
c=db.cursor()
# 执行sql语句
c.execute("select * from user")
#读取数据库里面一条信息
d=c.fetchone();
print(d)
d=c.fetchone();
print(d)
#读取全部数据
d=c.fetchall();
print(d)
# 插入数据
a=c.execute("insert into user (id,'name',age) values (6,'yyy',10)")
# 提交事务
db.commit();
# 关闭数据库连接
db.close()

selenium自动化

Selenium WebDriver

提供了web自动化的各种语言(java,python)调用接口库
通过各种浏览器驱动来驱动浏览器

在这里插入图片描述
在这里插入图片描述

谷歌:	http://npm.taobao.org/mirrors/chromedriver/

在这里插入图片描述
自动化爬取前程无忧Java

from selenium import webdriver
# 指定浏览器驱动地址,webdriver实例对象
driver=webdriver.Chrome(r"D:\浏览器驱动\chromedriver.exe")
#访问网址
driver.get("http://www.51job.com");

效果
在这里插入图片描述
在这里插入图片描述
找到元素,操作元素

from selenium import webdriver
# 指定浏览器驱动地址,webdriver实例对象
driver=webdriver.Chrome(r"D:\浏览器驱动\chromedriver.exe")
#访问网址
driver.get("http://www.51job.com");
# 找到元素
ele=driver.find_element_by_id("kwdselectid");
#操作元素
ele.send_keys("java");

在这里插入图片描述
在这里插入图片描述

from selenium import webdriver
# 指定浏览器驱动地址,webdriver实例对象
driver=webdriver.Chrome(r"D:\浏览器驱动\chromedriver.exe")
#访问网址
driver.get("http://www.51job.com");
# 找到元素
ele=driver.find_element_by_id("kwdselectid");
#操作元素
ele.send_keys("java");
ele=ele.find_element_by_id("work_position_input");
ele.click();

driver.find_element_by_css_selector()

效果图无

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:54:06  更:2021-07-11 16:54:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/5 23:14:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码