class TestEmp(unittest.TestCase):
    # 初始化
    def setUp(self):
        # 实例化封装的登录接口
        self.login_api = LoginApi()
        # 实例化封装的员工接口
        self.emp_api = EmpApi()
        # 定义员工模块的URL
        self.emp_url = "http://182.92.81.159" + "/api/sys/user"

    def tearDown(self):
        pass

    # 编写测试员工增删改查的案例
    def test01_login(self):
        # 1 实现登录接口
        response = self.login_api.login({"mobile": "13800000002", "password": "******"},
                                        app.HEADERS)
        #   获取登录接口返回的json数据
        result = response.json()
        # 输出登录的结果
        logging.info("员工模块登录接口的结果为:{}".format(result))
        #   把令牌提取出来,并保存到请求头当中
        token = result.get("data")
        app.HEADERS = {"Content-Type": "application/json", "Authorization": "Bearer " + token}
        logging.info("登录成功后设置的请求头为:{}".format(app.HEADERS))

    # 定义员工数据文件的路径
    filename = app.BASE_DIR + "/data/emp.json"

    @parameterized.expand(read_emp_data(filename, "add_emp"))
    def test02_add_emp(self, username, mobile, http_code, success, code, message):
        # 2 实现添加员工接口
        response = self.emp_api.add_emp(username, mobile, app.HEADERS)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        #   把员工id提取出来,并保存到变量当中
        app.EMP_ID = add_result.get("data").get("id")
        # 打印获取的员工ID
        logging.info("app.EMPID为:{}".format(app.EMP_ID))
        # 断言
        assert_common_utils(self, response, http_code, success, code, message)

    @parameterized.expand(read_emp_data(filename, "query_emp"))
    def test03_query_emp(self, http_code, success, code, message):
        # 3 实现查询员工接口
        # 发送查询员工的接口请求
        response = self.emp_api.query_emp(app.EMP_ID, app.HEADERS)
        # 打印查询员工的结果
        logging.info("查询员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, http_code, success, code, message)

    @parameterized.expand(read_emp_data(filename, "modify_emp"))
    def test04_modify_emp(self, username, http_code, success, code, message):
        # 4 实现修改员工接口
        # 发送修改员工接口请求
        response = self.emp_api.modify_emp(app.EMP_ID, username, app.HEADERS)
        # 打印修改员工的结果
        logging.info("修改员工的结果为:{}".format(response.json()))

        # 现在由于修改员工返回的响应数据当中,没有修改的username
        # 所有我们并不知道修改的username有没有成功
        # 那么怎么办?
        # 我们需要连接到ihrm数据库中,然后按照添加员工返回的员工id查询这个员工id对应的
        # username的值,如果数据库的username与修改的username一致,那么就证明修改成功了
        # 实际数据:数据库查询出来的数据;预期:修改的数据
        # 我们执行的SQL语句,在navicat中是查不到任何数据的,原因是因为执行完毕之后,员工被删除了
        # 如果添加员工失败,那么员工ID提取失败,也会导致查询失败
        # 导包
        import pymysql
        # 连接数据库
        conn = pymysql.connect(host='182.92.81.159', user='******', password='******', database='ihrm')
        # 获取游标
        cursor = conn.cursor()
        # 定义SQL语句
        sql = "select username from bs_user where id={}".format(app.EMP_ID)
        # 输出SQL语句
        logging.info("打印SQL语句:{}".format(sql))
        # 执行查询的SQL语句
        cursor.execute(sql)
        # 获取执行结果
        result = cursor.fetchone()
        # 调试打印执行的SQL结果
        logging.info("执行SQL语句查询的结果为:{}".format(result))
        # 关闭游标
        cursor.close()
        # 关闭连接
        conn.close()
        # 断言数据库查询的结果
        self.assertEqual(username, result[0])

        # 断言
        assert_common_utils(self, response, http_code, success, code, message)

    @parameterized.expand(read_emp_data(filename, "delete_emp"))
    def test05_delete_emp(self, http_code, success, code, message):
        # 5 实现删除员工接口
        # 发送删除员工接口请求
        response = self.emp_api.delete_emp(app.EMP_ID, app.HEADERS)
        # 打印删除员工的结果
        logging.info("删除员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, http_code, success, code, message)
Beispiel #2
0
class TestEmp(unittest.TestCase):
    # 初始化
    def setUp(self):
        # 实例化封装的登录接口
        self.login_api = LoginApi()
        # 实例化封装的员工接口
        self.emp_api = EmpApi()
        # 定义员工模块的URL
        self.emp_url = "http://182.92.81.159" + "/api/sys/user"

    def tearDown(self):
        pass

    # 编写测试员工增删改查的案例
    def test01_login(self):
        # 1 实现登录接口
        response = self.login_api.login(
            {
                "mobile": "13800000002",
                "password": "******"
            }, app.HEADERS)
        #   获取登录接口返回的json数据
        result = response.json()
        # 输出登录的结果
        logging.info("员工模块登录接口的结果为:{}".format(result))
        #   把令牌提取出来,并保存到请求头当中
        token = result.get("data")
        app.HEADERS = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + token
        }
        logging.info("登录成功后设置的请求头为:{}".format(app.HEADERS))

    def test02_add_emp(self):
        # 2 实现添加员工接口
        response = self.emp_api.add_emp("王安SS石0071X", "13123463453",
                                        app.HEADERS)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        #   把员工id提取出来,并保存到变量当中
        app.EMP_ID = add_result.get("data").get("id")
        # 打印获取的员工ID
        logging.info("app.EMPID为:{}".format(app.EMP_ID))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")

    def test03_query_emp(self):
        # 3 实现查询员工接口
        # 发送查询员工的接口请求
        response = self.emp_api.query_emp(app.EMP_ID, app.HEADERS)
        # 打印查询员工的结果
        logging.info("查询员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")

    def test04_modify_emp(self, username, http_code, success, code, message):
        # 4 实现修改员工接口
        # 发送修改员工接口请求
        response = self.emp_api.modify_emp(app.EMP_ID, username, app.HEADERS)
        # 打印修改员工的结果
        logging.info("修改员工的结果为:{}".format(response.json()))

        # 断言
        assert_common_utils(self, response, http_code, success, code, message)

    def test05_delete_emp(self):
        # 5 实现删除员工接口
        # 发送删除员工接口请求
        response = self.emp_api.delete_emp(app.EMP_ID, app.HEADERS)
        # 打印删除员工的结果
        logging.info("删除员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")
Beispiel #3
0
class TestEmp(unittest.TestCase):
    # 初始化
    def setUp(self):
        self.login_api = LoginApi()
        self.emp_api = EmpApi()
        # 定义员工模块的url
        self.emp_url = "http://182.92.81.159" + "/api/sys/user"

    def tearDown(self):
        pass

    # 编写测试员工增删改查的案例
    def test01_test_emp_operation(self):
        # 1 实现登录接口
        response = self.login_api.login(
            {
                "mobile": "13800000002",
                "password": "******"
            },
            headers=app.HEADERS)
        #   获取登录接口返回的json数据
        result = response.json()
        # 输出登录的结果
        logging.info("员工登录接口的结果为:{}".format(result))
        #   把令牌提取出来,并保存到请求头当中
        token = result.get('data')
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + token
        }
        # 2 实现添加员工接口
        response = self.emp_api.add_emp("卡子666", "13676789883", headers)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        #   把员工id提取出来,并保存到变量当中
        emp_id = add_result.get('data').get('id')
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")
        # 3 实现查询员工接口
        # 发生查询员工的接口请求
        response = self.emp_api.query_emp(emp_id, headers)
        # 打印查询员工的结果
        logging.info("查询员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")
        # 4 实现修改员工接口
        # 发生修改员工的接口请求
        response = self.emp_api.modify_emp(emp_id, "卡卡卡卡子666", headers)
        # 打印修改员工的结果
        logging.info("修改员工的结果为:{}".format(response.json()))
        # 导包
        import pymysql
        # 链接数据库
        conn = pymysql.connect(host='182.92.81.159',
                               user='******',
                               password='******',
                               database='ihrm')
        # 获取游标
        cursor = conn.cursor()
        # 执行SQL语句
        sql = "select username from bs_user where id={}".format(emp_id)
        logging.info("打印SQL语句:{}".format(sql))
        cursor.execute(sql)
        result = cursor.fetchone()
        logging.info("执行SQL语句查询的结果为:{}".format(result))
        # 关闭游标
        cursor.close()
        # 关闭连接
        conn.close()
        self.assertEqual("卡卡卡卡子666", result[0])
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")
        # 5 实现删除员工接口
        # 发生删除员工的接口请求
        response = self.emp_api.delete_emp(emp_id, headers)
        # 打印删除员工的结果
        logging.info("删除员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")
class TestEmplyoee(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 实例化登录接口
        self.login_api = LoginApi()
        # 实例化员工接口
        self.emp_api = EmpApi()
        self.emp_url = "http://182.92.81.159/api/sys/user"

    def tearDown(self) -> None:
        pass

    # 编写测试员工增删改查的案例
    def test01_emp_operation(self):
        # 登录接口
        response = self.login_api.login(
            {
                "mobile": "13800000002",
                "password": "******"
            }, app.HEADERS)
        jsonData = response.json()
        logging.info("打印登录接口响应体数据:{}".format(jsonData))
        # 获取响应体中的令牌数据
        token = jsonData.get("data")
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + token
        }
        logging.info("员工模块接口请求头为:{}".format(headers))

        # 添加员工
        response = self.emp_api.add_emp("珠穆拉囊tyy", "18985641562", headers)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        # 提取员工id,保存到变量中
        emp_id = add_result.get("data").get("id")
        logging.info("获取到的员工id为:{}".format(emp_id))
        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")

        # 查询员工
        # 发送查询员工接口请求
        response = self.emp_api.query_emp(emp_id, headers)
        # 打印查询结果
        logging.info("查询员工的结果为:{}".format(response.json()))
        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")

        # 修改员工
        # 发送修改员工接口请求
        response = self.emp_api.modify_emp(emp_id, "珠穆拉拉", headers)
        logging.info("修改员工的结果为:{}".format(response.json()))
        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")

        # 删除员工
        delete_emp_url = self.emp_url + "/" + emp_id
        logging.info("删除员工接口的url为:{}".format(delete_emp_url))
        # 发送修改员工接口请求
        response = self.emp_api.delete_emp(emp_id, headers)
        logging.info("删除员工的结果为:{}".format(response.json()))
        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")
Beispiel #5
0
class TestEmp(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 实例化封装的登录接口
        self.login_api = LoginApi()
        # 实例化封装的添加员工接口
        self.emp_api = EmpApi()
        # 定义员工模块的URL
        self.emp_url = "http://182.92.81.159" + "/api/sys/user"

    def tearDown(self) -> None:
        ...

    # 编写测试员工增删改查用例
    def test01_test_emp_operation(self):
        # 1、实现登录接口
        response = self.login_api.login(
            {
                "mobile": "13800000002",
                "password": "******"
            },
            headers=app.headers)
        #   获取登录接口返回的json数据
        result = response.json()
        # 输出登录的结果
        logging.info("员工模块登录接口的结果为:{}".format(result))
        #   把令牌提取出来,并保存到请求头当中
        token = result.get("data")
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + token
        }
        logging.info("登录成功后设置的请求头为:{}".format(headers))

        # 2、实现添加员工接口

        # response = requests.post(self.emp_url,
        #                          json={
        #                              "username": "******",
        #                              "mobile": "15000000015",
        #                              "timeOfEntry": "2020-03-16",
        #                              "formOfEmployment": 2,
        #                              "departmentName": "snowsnow",
        #                              "departmentId": "1226092852421177344",
        #                              "correctionTime": "2020-03-15T16:00:00.000Z"},
        #                         headers=headers)
        response = self.emp_api.add_emp("大白鹅鹅008", "15562000222", headers)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        #   把员工id提取出来,并保存到变量当中
        emp_id = add_result.get("data").get("id")
        logging.info("获取的员工ID为:{}".format(emp_id))
        # 断言
        assert_common_uitls(self, response, 200, True, 10000, "操作成功")

        # 3、实现查询员工接口
        # 发送查询员工的接口请求
        response = self.emp_api.query_emp(emp_id, headers)
        # 打印查询员工的结果
        logging.info("查询员工接口的结果为:{}".format(response.json()))
        # 断言
        assert_common_uitls(self, response, 200, True, 10000, "操作成功")

        # 4、实现修改员工接口
        # 发送修改员工接口的请求
        response = self.emp_api.modify_emp(emp_id, "tom", headers)
        # 打印修改员工的结果
        logging.info("修改员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_uitls(self, response, 200, True, 10000, "操作成功")

        # 5、实现删除员工接口
        # 发送删除员工接口的请求
        response = self.emp_api.delete_emp(emp_id, headers)
        # 打印修改员工的结果
        logging.info("修改员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_uitls(self, response, 200, True, 10000, "操作成功")
Beispiel #6
0
class TestEmp(unittest.TestCase):
    # 初始化
    def setUp(self):
        # 实例化封装的登录接口
        self.login_api = LoginApi()
        self.emp_api = EmpApi()
        # 定义员工模块的URL
        self.emp_url = "http://182.92.81.159" + "/api/sys/user"

    def tearDown(self):
        pass

    # 编写测试员工增删改查的案例
    def test01_test_emp_operation(self):
        # 1 实现登录接口
        response = self.login_api.login(
            {
                "mobile": "13800000002",
                "password": "******"
            },
            headers=app.HEADERS)
        #   获取登录接口返回的json数据
        result = response.json()
        # 输出登录的结果
        logging.info("员工模块登录接口的结果为:{}".format(result))
        #   把令牌提取出来,并保存到请求头当中
        token = result.get("data")
        headers = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + token
        }
        # 打印拼接完成的请求头
        logging.info("登录成功后设置的请求头为:{}".format(headers))

        # 2 实现添加员工接口
        response = self.emp_api.add_emp("1号选手蔡徐坤", "17643982666", headers)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        #   把员工id提取出来,并保存到变量当中
        emp_id = add_result.get("data").get("id")
        # 打印获取的员工id
        logging.info("添加员工的id为:{}".format(emp_id))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")

        # 3 实现查询员工接口
        # 发送查询员工的接口请求
        response = self.emp_api.query_emp(emp_id, headers)
        # 打印查询员工的结果
        logging.info("查询员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")

        # 4 实现修改员工接口
        # 发送修改员工接口请求
        response = self.emp_api.modify_emp(emp_id, "蔡徐坤爱打篮球", headers)
        # 打印修改员工的结果
        logging.info("修改员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")

        # 5 实现删除员工接口
        # 发送删除员工接口请求
        response = self.emp_api.delete_emp(emp_id, headers)
        # 打印删除员工的结果
        logging.info("删除员工的结果为:{}".format(response.json()))
        # 断言
        assert_common_utils(self, response, 200, True, 10000, "操作成功")
Beispiel #7
0
class TestEmplyoee(unittest.TestCase):
    # 初始化
    def setUp(self) -> None:
        # 实例化登录接口
        self.login_api = LoginApi()
        # 实例化员工接口
        self.emp_api = EmpApi()
        self.emp_url = "http://182.92.81.159/api/sys/user"

    def tearDown(self) -> None:
        pass

    # 编写测试员工增删改查的案例
    def test01_emp_operation(self):
        # 登录接口
        response = self.login_api.login(
            {
                "mobile": "13800000002",
                "password": "******"
            }, app.HEADERS)
        jsonData = response.json()
        logging.info("打印登录接口响应体数据:{}".format(jsonData))
        # 获取响应体中的令牌数据
        token = jsonData.get("data")
        app.HEADERS = {
            "Content-Type": "application/json",
            "Authorization": "Bearer " + token
        }
        logging.info("员工模块接口请求头为:{}".format(app.HEADERS))

    # 数据文件路径
    filename = app.BASE_DIR + "/data/emp.json"
    # 参数化
    @parameterized.expand(read_emp_data(filename, "add_emp"))
    def test02_add_emp(self, username, mobile, http_code, success, code,
                       message):
        # 添加员工
        response = self.emp_api.add_emp(username, mobile, app.HEADERS)
        # 打印添加的结果
        logging.info("添加员工的结果为:{}".format(response.json()))
        #   获取添加员工返回的json数据
        add_result = response.json()
        # 提取员工id,保存到变量中
        app.EMP_ID = add_result.get("data").get("id")
        logging.info("EMP_ID的值为:{}".format(app.EMP_ID))
        # 断言
        assert_commen_utils(self, response, http_code, success, code, message)

    def test03_query_emp(self):
        # 查询员工
        # 发送查询员工接口请求
        response = self.emp_api.query_emp(app.EMP_ID, app.HEADERS)
        # 打印查询结果
        logging.info("查询员工的结果为:{}".format(response.json()))
        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")

    def test04_modify_emp(self):
        # 修改员工
        # 发送修改员工接口请求
        response = self.emp_api.modify_emp(app.EMP_ID, "珠穆拉拉", app.HEADERS)
        logging.info("修改员工的结果为:{}".format(response.json()))

        # 在断言之前执行数据库操作,否则断言失败会无法执行
        # 导包
        import pymysql
        # 连接数据库
        conn = pymysql.connect(host="182.92.81.159",
                               user="******",
                               password="******",
                               database="ihrm")
        # 获取游标
        cursor = conn.cursor()

        sql = "select username from bs_user where id={}".format(app.EMP_ID)
        # 打印执行的SQL语句
        logging.info("执行的SQL语句为:{}".format(sql))
        # 执行SQL语句
        cursor.execute(sql)
        result = cursor.fetchone()
        logging.info("执行SQL语句的结果为:{}".format(result))
        # 断言执行结果
        self.assertEqual("珠穆拉拉", result[0])
        # 关闭游标
        cursor.close()
        # 关闭连接
        conn.close()

        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")

    def test05_delete_emp(self):
        # 删除员工
        delete_emp_url = self.emp_url + "/" + app.EMP_ID
        logging.info("删除员工接口的url为:{}".format(delete_emp_url))
        # 发送修改员工接口请求
        response = self.emp_api.delete_emp(app.EMP_ID, app.HEADERS)
        logging.info("删除员工的结果为:{}".format(response.json()))
        # 断言
        assert_commen_utils(self, response, 200, True, 10000, "操作成功")